XSLTの最近のブログ記事

なんか***基礎文法マスターなるものが流行っているそうなのでやってみる。

2010-02-02 19時追記>

元ネタ → http://d.hatena.ne.jp/bleis-tift/20090930/1254309201
何か流行ってるみたいなので、やってみる。

perlは簡単すぎて面白くないので、

use List::Util qw/sum/;
print sum 1 .. (shift or 10);

元ネタ: ``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を引数に取るって書いてある。いやー、知らんかった.

AUTHOR

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

2014年5月

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

- 警 告 -

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

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