サンプルで覚えるXSLTプログラミング
12. ノードに関する関数
ノードに関する関数を使うと、処理中のタグの名称や現在位置を知ることができます。
current()
現在のノードを返します。返り値はノード表現です。
last()
現在のノードの最年少弟ノードの番号を返します。返り値は数値です。
local-name(node)
引数 | 引数タイプ |
node | ノード表現 |
node引数で与えられた表現のlocal値(namespaceを外したもの)を、文字列として返します。
name()
現在のノードの名前を、文字列として返します。
namespace-uri(node)
引数 | 引数タイプ |
node | ノード表現 |
node引数で、namespaceが定義されているURIを、文字列として返します。
ここまでに紹介したいくつかの関数を使った例を見てみましょう。
(XML文書:TestNode1.xml) |
(XSLTプログラム:TestNode1.xsl) |
(出力結果) |
まず、XSLTプロセッサは<xsl:template match="/address">で“address”ノードを処理し
ます。 その後<page>タグを出力し、続く<xsl:apply-templates/>で、“address”ノードの子ノードを<xsl:template
match="*">によって“city”、“section”、“street”、“zip”の順に処
理していきます。
“city”ノードは <xsl:value-of select="name()"/>でノードの文字列である“city”を出力し、次に“:”を出力します。最後に<xsl:value-of select="current()"/>でノードの中身である“東京”を出力していきます。 同じように“section”、“street”、“zip”を処理して行き、プロセッサーは<xsl:template match="/address">に戻り、</page>タグを出力します。
position()
現在のノードの位置(兄弟の中で)を、数値で返します。
今度は、前述のlast()とposition()を使った例を紹介しましょう。
(XML文書:djia.xml) |
(XSLTプログラム)
|
(出力結果) |
Index | |
サンプルで覚えるXSLTプログラミング | |
1.
XMLからHTMLへの変換 スタイルシートはどのように解釈されるか |
|
2.
XPathの基礎知識 XML文書をツリー構造で見る XPathの表記方法 |
|
3. XSLTエレメントの概要 コラム XSLTプロセッサのインストール |
|
4. テンプレート系XSLTエレメント テンプレートの定義 該当するテンプレートの適用 指定されたテンプレートの呼び出し |
|
5. 変数系XSLTエレメント 変数の定義1 変数の定義2 |
|
6. 出力系XSLTエレメント 該当する表現の値を代入 エレメントノードの生成 属性ノードの生成 テキストノードの生成 コメントノードの生成 PI(processing-instruction)の生成 出力方法の指定 |
|
7. フローコントロール系XSLTエレメント ループ処理 条件分岐 IF文 |
|
8. その他のXSLTエレメント
他のXSLファイルの読み込み 数の割り当て |
|
9.XSLT関数の概要 関数の主な分類 |
|
10. 文字列系関数 文字列の連結 文字列の調査 数字のフォーマッティング 空白の除去 …… |
|
11. 数値計算系関数 切り上げ 表現の数を数える 切り下げ 数値型への変換 四捨五入 加算 |
|
12. ノードに関する関数 | |
13. bool代数系関数 | |
14. その他の関数 | |
15. JavaによるXSLTの拡張
Built-inクラスの呼び出し カスタムメイドの関数を作る |
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|