#練習用

XSLT 2.0で便利になった機能(59) ロケーションステップでの式記述

今まで知らなかったといえばそれまでなのですが、掲題の機能は非常に便利です.一般的にソースドキュメントからなにがしかの値を求める場合、ロケーションステップを使用します.例えば /doc/chapter/sect/p など.でもこれを求めるときに入力ドキュメントに…

XSLT 2.0で便利になった機能(58) キャラクタマップ(2)

キャラクタマップ(xsl:character-map)についてはすでに以前書きましたのでダブルポストです.xsl:character-mapは、XSLTスタイルシートで入力XMLを出力XMLに変換し、それを実際のファイルに書き出す(シリアライズ)するときに、自動的に「指定した文字」…

XSLT2.0で便利になった機能(57) Xpathのコメント

XSLTというよりは、XPathの話なのですが、この前DITA-OTのxslフォルダのスタイルシートを見ていたら次のようなコードが出てきました. <xsl:if test="(:not(@linking) and :)not($parent-linking='none')"> あまり見慣れていない"(:"と":)"という表記があります.これは何かというと実はXPathの中に書けるコメントです. エッ!</xsl:if>…

XSLT2.0で便利になった機能(56) xsl:analyze-string

すでに取り上げていますが、xsl:analyze-stringをもう一度使ってみる機会がありましたので紹介します. 目的は"($Index_Indent_Value) * %level + 2mm"のようなスタイル記述の文字列で、"$"で始まっている変数的なものを取り出して値で置換する、他はそのま…

XSLT2.0で便利になった機能(54) xsl:perform-sort

文書系のスタイルシートを作っていると、なかなかxsl:sortにお目にかかる機会がありません.せいぜいあるとすれば<indexterm>をABC順(日本語ならあいうえお順)にソートするときくらいでしょうか?今回たまたまxsl:sortを使う機会がありました.どのような場合かという</indexterm>…

XSLT 2.0で便利になった機能(47) xsl:value-ofのseparator属性

この前、次のようなデータから <div> <span>りんご</span> <span>みかん</span> <span>バナナ</span> </div> 次のような出力を得るのにposition()関数を使う例を紹介しました. <fo:block>【りんご,みかん,バナナ】</fo:block> もしspan以下に<i>や<b>などの要素がないか、あっても無視できる場合、もっと簡単にできます.それは<xsl:value-of>を使用す</xsl:value-of></b></i>…

XSLT 2.0で便利になった機能(46) xsl:templateのmatch属性

テンプレートとmatch属性はXSLTスタイルシートの核をなす構成要素です.match属性の中身はパターン(pattern)と呼ばれます.ここには一般的にはパスのパターンを書きます.例えば <xsl:template match="p"> はp要素にマッチした処理を記述します. <xsl:template match="p[string(@outputclass) eq 'normal']"> はouputclass属性が"normal"のp要</xsl:template></xsl:template>…

XSLT 2.0で便利になった機能(42) mode属性

特に文書系なのですが、スタイルシートは手が込んでくるとやたらとモードを使って処理を切り回す場合があります.相手は同じ要素なのですが、xsl:templateのmode属性を変えて違った処理をしたいことが多々ある訳です.索引などがよい例かもしれません.私はX…