| <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> | |