• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:XSLTについて)

XSLTで可変要素のHTML表示を作成する方法

このQ&Aのポイント
  • XSLTを使用して、可変要素のHTML表示を作成する方法について教えてください。
  • XMLからHTMLへの変換には、XSLTが利用できます。特に、<book>要素の子ノードが可変であり、要素名が事前にわからない場合にXSLTを作成する方法を知りたいです。
  • XSLTを使用して、可変要素のHTML表示を行うためには、<xsl:for-each>ループを使用して<book>の子要素を処理し、<table>要素の<tr>と<td>要素を作成する方法が一般的です。

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

  • ベストアンサー
回答No.1

好みの都合で余計なものいっぱいくっついているけど =================Q4511114-1.xml(入力)=============== <?xml version="1.0" encoding="UTF-8"?> <book> <ジャンプ>200円</ジャンプ> <マガジン>210円</マガジン> <サンデー>200円</サンデー> </book> =================Q4511114-1.xsl(変換)============= <?xml version="1.0" encoding="UTF-8"?> <!-- 教えてgooのシステムはURIっぽい文字列の前後にNO WIDTH SPACEをつけるため,回答をそのままコピーしても動きません --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="no" standalone="no" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" indent="yes" media-type="text/xml"/> <xsl:template match="/"> <html> <head> <title>Q4511114 TestCase 1</title> </head> <body> <xsl:apply-templates /> </body> </html> </xsl:template> <xsl:template match="book"> <table> <xsl:for-each select="*"> <tr> <td><xsl:value-of select="local-name(.)" /></td> <td><xsl:value-of select="text()" /></td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet> ==================Q4511114-2.xml(結果)============ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Q4511114 TestCase 1</title> </head> <body> <table> <tr> <td>ジャンプ</td> <td>200円</td> </tr> <tr> <td>マガジン</td> <td>210円</td> </tr> <tr> <td>サンデー</td> <td>200円</td> </tr> </table> </body> </html>

k_tanpin
質問者

お礼

回答ありがとうございます。 特定のものにmatchさせてから、<xsl:for-each select="*">であるだけまわすんですね。 なんとなくコツがわかりました。 どうもありがとうございました。

関連するQ&A

専門家に質問してみよう