6. 追加の関数
この章においては、XPath のコア関数ライブラリに追加した XSLT 固有の関数についてみていきたいと思います。
XSLT 6章 追加の関数
- 6.1 複数のソースドキュメント
- 6.2 キー
- 6.3 数字のフォーマット
- 6.4 その他の追加関数
6.1 複数のソースドキュメント
node-set document(object, node-set?)
document 関数は、メインのソースドキュメント以外の XML 文書へのアクセスを可能にします。
1番目の引数は必須であり、読み込みたい XML 文書の URI を指定します。通常は string 型で指定しますが、変換した結果が URI を示すなら他の型でもかまいません。
相対 URI を解決する際にベースとなる URI を指定したい場合は、2番目の引数としてノード集合を指定します。このとき、そのノード集合のドキュメント順で最初のノードが記述されたリソースの URI が、ベースとなる URI として使用されます。
people1.xml |
<?xml version="1.0"?> <people> <person>Kevin Shields</person> <person>Trent Reznor</person> </people> |
people2.xml |
<?xml version="1.0"?> <people> <person>Kurt Cobain</person> <person>Richard Ashcroft</person> </people> |
<xsl:variable name="people" select="document('people1.xml')/people/person | document('people2.xml')/people/person" /> <xsl:template match="/"> <people> <xsl:copy-of select="$people" /> </people> </xsl:template>
上記のテンプレートを people1.xml に適用すると以下の出力を得ます。
<people> <person>Kevin Shields</person> <person>Trent Reznor</person> <person>Kurt Cobain</person> <person>Richard Ashcroft</person> </people>