XMLゼミ 5.4 XSLT (P118~P134) 兒玉 光太郎
XSLTとは? XML文書のスタイルシート言語仕様であるXSLの一部として使用するために設計された XSLから独立した1つの仕様、XSLTとして勧告された
XSLTスタイルシート XSLT文書の典型的なスケルトン <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> (スタイル内容) <xsl:stylesheet> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> (スタイル内容) <xsl:stylesheet>
XML文書をHTML文書に変換するXSLT文書 <?xml version="1.0" encoding="UTF-16"?> <!-- members-a.xsl --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="shift_jis"/> <xsl:template match="/"> <html> <xsl:apply-templates/> </html> </xsl:template> <xsl:template match="supplier"> <h1><xsl:value-of select="."/></h1> </xsl:stylesheet>
XML文書にXSLT文書を適用する <?xml version="1.0" encoding="UTF-16"?> <!-- members.xml --> <?xml-stylesheet type="text/xsl" href="members-a.xsl"?> <memberlist> <member> <Name CODE='002525' IMG='niko.gif'>二戸丹子</Name> <TEL>2525-0110</TEL> <FAX>2525-0111</FAX> </member> <Name CODE='001234' IMG='bassman.gif'>低音 出留蔵</Name> <TEL>0301-0110</TEL> <FAX>0301-0111</FAX> </memberlist> 適用する XSLT文書(1) 実行結果(1)
<?xml version="1.0" encoding="UTF-16"?> <!-- members.xml --> <?xml-stylesheet type="text/xsl" href="members-a.xsl"?> <memberlist> <member> <Name CODE='002525' IMG='niko.gif'>二戸丹子</Name> <TEL>2525-0110</TEL> <FAX>2525-0111</FAX> </member> <Name CODE='001234' IMG='bassman.gif'>低音 出留蔵</Name> <TEL>0301-0110</TEL> <FAX>0301-0111</FAX> </memberlist> 適用する XSLT文書(2) 実行結果(2)
XSLTスタイルシートの要素 ・xsl:apply-templates ・テンプレートを適用する。子要素も再帰的に処理する <xsl:template match="*"> <fo:block font-weight="bold"> <xsl:applytemplates/></fo:block> </xsl:template> ・xsl:for-each ・テンプレートのルールを、指定した各要素に対して適用する <xsl:for-each select = node-set-expression> (各要素に対して適用するテンプレートの内容) </xsl:for-each>
ほかのスタイルシートの利用 XSLTでスタイルシートを結合する方法は以下の2種類 ・インクルード ・インクルード <xsl:include href='インクルードするスタイルシートのURI' /> ・インポート <xsl:import href='インポートするスタイルシートのURI'/>
スタイルシートの埋め込み XSLTスタイルシートは、それを適用するXML文書とは別のドキュメントとして作成する <?xml version="1.0" encoding="Unicode"?> <?xml:stylesheet type="text/xsl" href="member.xsl"?> (XML文書のインスタンス) *この操作によって、XMLドキュメントの中でスタイルシートは xsl:stylesheet要素として表される
課題 XML文書とXSLT文書の作成