• ベストアンサー

複数リンクをしたいのですが表示されない

複数リンクしたいページがあったので色々試みました こちらのサイトを参考にして http://www6.airnet.ne.jp/manyo/xml/index.html Xlinkの単純リンク・拡張リンクを試したのですがリンクが全くされないで、普通に文字が並んでるように表示されました また http://questionbox.jp.msn.com/qa1821124.html こちらのやり方で試みてもリンクされていない状態でした。 XMLの書き方がまずかったのか、別の理由でリンク表示されないのかわかりませんがどうしたら複数リンクができるでしょうか? 大体こんな感じに書きました ↓XML <?xml version="1.0" encoding="Shift_JIS"?> <?xml-stylesheet type="text/xsl" href="anime1.xsl"?> <iti> <sait> <name>世界の発展</name> <gai> <link url="http://***">イギリス</link> <link url="http://***">フランス</link> <link url="http://***">イタリア</link> </gai> </sait> ↓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> <div align="center"> <xsl:apply-templates select="iti" /> </div> </body> </html> </xsl:template> <xsl:template match="iti"> <br /> <br /> <h1>テスト</h1> <xsl:apply-templates select="sait" /> <br /> <br /> </xsl:template> <xsl:template match="sait"> <table border="1" bgcolor="#006fdd" width="700"> <tr> <th><xsl:value-of select="name" /></th> </tr><tr> <td><xsl:value-of select="gai" /></tr> </table> <br /> </xsl:template> <xsl:template match="link" > <a> <xsl:attribute name="href"> <xsl:value-of select="@url" /> </xsl:attribute> <xsl:value-of select="text()" /> </a> </xsl:template> </xsl:stylesheet> どこら辺が間違ってますでしょうか?

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

  • ベストアンサー
  • nadera
  • ベストアンサー率83% (5/6)
回答No.2

とりあえず,次のようにすると表示されると思います。 意図したような表示かどうかは別として。 </tr><tr> <td><xsl:value-of select="gai" /></tr>   ~~~~~~~~~~~~~~~ </table>  ↓ </tr><tr> <td><xsl:apply-templates select="gai/link" /></td></tr>   ~~~~~~~~~~~~~~~~~~~~~~~ </table> もうひとつ(各リンクを改行するために) <xsl:value-of select="text()" /> </a> </xsl:template>  ↓ <xsl:value-of select="text()" /> </a><br/>   ~~~ </xsl:template>

fine12
質問者

補足

ありがとうございます。 無事リンク表示されました♪ 初心者に対しても非常にわかりやすい回答ありがとうございました。 3日間、どう書けばいいかかなりあっちこっちのHPを見てましたが、ここで早く質問すればよかったと思えたぐらい問題解消できました。 また改行について指摘して頂きありがとうございました。 おかげで見やすくなりました。

その他の回答 (1)

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

linkを投げるapply-templatesが無いからじゃない? 表示されているのはvalue-ofでそれの上位階層であるgaiが指定されているから。 だからtemplateが適用されているように見えて実は呼ばれてない

fine12
質問者

補足

<xsl:apply-templates select="gai/link" /> こう書くのですね value-ofで書くと下位階層は指定されないのですね

関連するQ&A

専門家に質問してみよう