<xsl:processing-instruction> | |
出力ドキュメントで処理命令を作成します。 | |
カテゴリ | |
命令 |
|
必須の属性 | |
|
|
省略可能な属性 | |
なし。 |
|
コンテンツ | |
XSLT テンプレート。テンプレートのコンテンツは、処理命令のデータになります。 |
|
指定先 | |
<xsl:processing-instruction> テンプレート内に指定します。 |
|
定義先 | |
XSLT 7.3 節「処理命令の作成」 |
|
例 | |
処理命令を XML ドキュメントに追加するスタイルシートを次に示します。処理命令により、スタイルシート <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml"/> <xsl:template match="/"> <xsl:processing-instruction name="xml-stylesheet">href="docbook/html/docbook.xsl" type="text/xsl"</xsl:processing-instruction> <xsl:copy-of select="."/> </xsl:template> </xsl:stylesheet> このスタイルシートでは、<xsl:copy-of> 要素を使用して入力ドキュメントを結果ツリーにコピーし、処理命令を追加します。この XML ドキュメントに対してスタイルシートを使用します。 <?xml version="1.0"?> <list> <title>A few of my favorite albums</title> <listitem>A Love Supreme</listitem> <listitem>Beat Crazy</listitem> <listitem>Here Come the Warm Jets</listitem> <listitem>Kind of Blue</listitem> <listitem>London Calling</listitem> <listitem>Remain in Light</listitem> <listitem>The Joshua Tree</listitem> <listitem>The Indestructible Beat of Soweto</listitem> </list> この変換を実行した場合の結果は次のとおりです。 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="docbook/html/docbook.xsl" type="text/xsl"?> <list> <title>A few of my favorite albums</title> <listitem>A Love Supreme</listitem> <listitem>Beat Crazy</listitem> <listitem>Here Come the Warm Jets</listitem> <listitem>Kind of Blue</listitem> <listitem>London Calling</listitem> <listitem>Remain in Light</listitem> <listitem>The Joshua Tree</listitem> <listitem>The Indestructible Beat of Soweto</listitem> </list> 処理命令のコンテンツはテキストです。生成された処理命令に 2 つの属性が含まれているように見えますが、処理命令をこのように作成することはできません。 <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml"/> <xsl:template match="/"> <xsl:processing-instruction name="xml-stylesheet"> <!-- This doesn't work! You can't put <xsl:attribute> elements inside a <xsl:processing-instruction> element. --> <xsl:attribute name="href"> <xsl:text>docbook/html/docbook.xsl</xsl:text> </xsl:attribute> <xsl:attribute name="type"> <xsl:text>text/xsl</xsl:text> </xsl:attribute> </xsl:processing-instruction> <xsl:copy-of select="."/> </xsl:template> </xsl:stylesheet> このスタイルシートを実行すると、XSLT プロセッサで例外が発生します。 ?"/td> |