アプリ版:「スタンプのみでお礼する」機能のリリースについて

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>

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

A 回答 (1件)

以下のように修正


----------------
<?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>
    • good
    • 0
この回答へのお礼

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

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

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

お礼日時:2005/06/15 22:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!