目次へ

6. 追加の関数

この章においては、XPath のコア関数ライブラリに追加した XSLT 固有の関数についてみていきたいと思います。

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>

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp