私は以下のような文書を持っており、subitem[@role="special"]
の数がその親item
から始まる必要があります。xpath 1.0のカウント関数を表現する方法は?
私の問題は、私はsubitem
の番号とそのsubitem
内の任意のネストされたsubitems
に同じ値を計算する必要があるということです。したがって、subitem[@role="special"]
の子孫であるsubitems
のすべてに対して、私は常に同じ値を取得する必要があります。私は、これらは私が試したものの一種である(want N)
<root>
<item role="special">
<name>One</name>
<subitem>
<name>A (want 0)</name>
</subitem>
</item>
<item>
<name>Two</name>
<subitem role="special">
<name>B (want 1)</name>
<subitem>
<name>B b (want 1)</name>
</subitem>
</subitem>
<subitem>
<name> C (want 0)</name>
<subitem>C c (want 0)</subitem>
</subitem>
<subitem role="special">
<name> D (want 2)</name>
<subitem>
<name>D d (want 2)</name>
</subitem>
</subitem>
</item>
</root>
して、以下のツリーに、私が欲しいものをラベル付けしましたが、私は私がしたいことは可能であるか疑問に思い始めている:
<xsl:template match="subitem">
<xsl:value-of select="count(ancestor-or-self::subitem[@role='special'])"/>
<xsl:value-of select="count(preceding-sibling::subitem[@role='special'])"/>
<xsl:text>
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
その返品:
00
10
10
01
00
11
10
これを行う方法はありますか?
なぜBは1、Dは2ですか?彼らは同じ場合ではありませんか? – Jayvee
Bは 'item 'の下の最初の'サブアイテム[@ role = "special"] 'であり、Dは秒です。私は最終的にこれらの数字を補足ナビゲーションファイルの作成に使用します。 – Tim