私はちょうどXSL(T)を学び始めました。どうすればapply-templates
がうまくいくのでしょうか?私は再帰的にそれが私の本に書かれているようにテンプレートの一部を適用することを理解していない。apply-templatesはどのように機能しますか?
私は、XSLのXPathの部分(T)を理解し、そうではなく、何apply-templates
は、複数回やって、なぜ私はそれを書くされます。
私はちょうどXSL(T)を学び始めました。どうすればapply-templates
がうまくいくのでしょうか?私は再帰的にそれが私の本に書かれているようにテンプレートの一部を適用することを理解していない。apply-templatesはどのように機能しますか?
私は、XSLのXPathの部分(T)を理解し、そうではなく、何apply-templates
は、複数回やって、なぜ私はそれを書くされます。
書籍で適用テンプレートを読んだことがあるが、それを理解していない場合は、ここでいくつかの単語が役立つことは明らかではありません。おそらくあなたは別の本が必要です。異なるチュートリアルスタイルは、異なる人々にアピールします。 http://vimeo.com/15234803のようなオンラインのチュートリアルでは、アイデアを得るでしょう。
テンプレートメカニズムの本質は、2つの関係者が関与していることです。 xsl:apply-templates命令は処理のためにいくつかのノードを選択し、テンプレートルール(それらの間のルール)はその処理が何であるべきかを決定する。これは非常に緩やかなカップリングと大きな懸念の分離をもたらします。それはむしろオブジェクト指向のメッセージ/メソッドのディスパッチに似ていますが、はるかに柔軟です。
<xsl:apply-templates>
を使用して、定義した<xsl:template>
:を呼び出します。
<xsl:apply-templates>
は、セット内の各ノードに一致するテンプレートを呼び出します。
apply-templates
にselect
属性を指定することで、処理順序を制御できます。
はw3schoolsからこの例を参照してください:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="cd">
<p>
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="artist"/>
</p>
</xsl:template>
<xsl:template match="title">
Title: <span style="color:#ff0000">
<xsl:value-of select="."/></span>
<br />
</xsl:template>
<xsl:template match="artist">
Artist: <span style="color:#00ff00">
<xsl:value-of select="."/></span>
<br />
</xsl:template>
</xsl:stylesheet>
最初apply-templates
は"cd"
名前付き要素に遭遇するたびcd
テンプレートを呼び出します。
cd
テンプレートは、順番に<cd>
の子要素を処理するためにtitle
とartist
テンプレートを呼び出します。
title
は、artist
の前に処理されます。ソースXMLにあるartist
とtitle
の要素の順序は違いがないことに注意してください。
あなたは、手続き型言語のサブルーチンコールにanaloguousとしてapply-templates
と考えることができます。
完了したテンプレートルールを理解している場合は、それが簡単ではないとしても、彼らは常に驚きを与えます。 Read the specs。
上記のチュートリアルでは、apply-templatesの明確なアイデアを示しています。また、mode = 'parent'を使用する目的を知る必要があります。 –
私の本をおすすめします: Wrox PressのXSLT 2.0プログラマのリファレンス名前付きモードのようなものになったら、まともな参考書が必要です。 –