こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

for-eachが上手くいきません

xslを使ってごくごく基本的なことをしようとしているのですが、何故か上手くいかず煮詰まっています。
ここが違う!というツッコミを是非よろしくお願いします。

ごく単純なことですが、xmlで複数の<site></site>内にあるデータそれぞれ表示させるためxslファイル内でfor-eachを使っています。for-each抜きだと一つ目の<site></site>がちゃんと表示されるのですが、for-eachを付け加えた途端何も表示されなくなってしまいます。

参考書を見て何度確認、やり直しをしても上手くいかず困っています。

使っているコードは以下の通りです。

XMLファイル:
<?xml version="1.0" encoding="Shift-JIS" ?>
<?xml-stylesheet type="text/xsl" href="links.xsl" ?>
<links>
<site>
<name>サイト1</name>
<banner>some.jpg</banner>
</site>
<site>
<name>サイト2</name>
<banner>other.jpg</banner>
</site>
</links>

XSLファイル:
<?xml version="1.0" encoding="Shift-JIS" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head><title><title></head>
<body>
<table border="1">
<xsl:for-each select="links/site">
<tr>
<td>
<img>
<xsl:attribute name="src">
<xsl:value-of select="links/site/banner" />
</xsl:attribute>
</img>
<b><xsl:value-of select="links/site/name" /></b>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

何かアドバイスがありましたらお聞かせ下さい。

投稿日時 - 2005-06-15 09:54:53

QNo.1450395

暇なときに回答ください

質問者が選んだベストアンサー

以下のように修正
----------------
<?xml version="1.0" encoding="Shift-JIS" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head><title></title></head>
<body>
<table border="1">
<xsl:for-each select="links/site">
<tr>
<td>
<img>
<xsl:attribute name="src">
<xsl:value-of select="banner" />
</xsl:attribute>
</img>
<b><xsl:value-of select="name" /></b>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

投稿日時 - 2005-06-15 13:21:25

お礼

うわあああ;
こんな簡単なポカで質問してしまってすみません。
お恥ずかしい限りです…。

for-eachのselectでパス(?)を指定しておいて、更にそれを繰り返したら表示されるわけ無いですよね…。自分の馬鹿さ加減に涙です。
修正したら、当然のごとく表示されました…。
こんなことで質問して本当に申し訳ありません…。

的確な回答有難うございました。

投稿日時 - 2005-06-15 22:16:31

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問