複数XML文書を横断的にsortする [XSLT]

| コメント(0) | トラックバック(0)

元ネタ: ``Sorting XSLT output items'' -- comp.text.xml

index.xml

<root>
  <link href="data1.xml" />
  <link href="data2.xml" />
</root>

data1.xml

<root>
  <data index="6">VI</data>
  <data index="2">II</data>
</root>

data2.xml

<root>
  <data index="1">I</data>
  <data index="4">IV</data>
  <data index="2">II</data>
  <data index="10">X</data>
</root>

上記のindex.xmlに対して下記のXSLTを適応すると、 data1.xml/data2.xml の 全ての /root/data/@index に対してソートが適応されます。

<xsl:stylesheet version="2.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  exclude-result-prefixes="xsl"
  >

  <xsl:output method="xml" />

  <xsl:template match="/" >
    <root>
      <xsl:for-each select="document(root/link/@href)/root/data">
        <xsl:sort select="./@index" data-type="number"/>

        <data><xsl:value-of select="." /></data>
      </xsl:for-each>
    </root>
  </xsl:template>

</xsl:stylesheet>

結果

<root>
  <data>I</data>
  <data>II</data>
  <data>II</data>
  <data>IV</data>
  <data>VI</data>
  <data>X</data>
</root>

XSLT2.0勧告の§16.1 をみたら、document() はuriのsequenceを引数に取るって書いてある。いやー、知らんかった.

トラックバック(0)

トラックバックURL: http://floralcompany.jp/mt/mt-tb.cgi/61

コメントする

AUTHOR

  • turugina (虎王 剱奈)
  • E-mail: turugina {at} floralcompany.jp
  • pixiv
  • PiXA

2010年7月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

アーカイブ

OpenID対応しています OpenIDについて
Powered by Movable Type 5.02

- 警 告 -

本サイトにはいわゆる「18禁画像」(イラスト)へのリンクが存在します。 未成年の方や、その手の画像に不快感を覚える方は、 該当記事(「えちぃの」及び「ちょっとえちぃの」カテゴリ) をご覧にならないようお願いいたします。

上記を理解した上で非表示のブログパーツを表示する
あわせて読みたいブログパーツ
ついった
drawr/pixiv/twitpic