0

次のような XML マークアップがあります。

<pet type="dog" id="76">
</pet>
<pet type="cat" id="79">
</pet>

この特定のケースでは、XSLT を使用しています。猫と犬の ID を取得するための変数を作成する最適な方法は何でしょうか? 順序は決して同じではないため、/pet[1]機能しません。次のようなものにする必要があります。

<xsl:variable name="cat_id"><xsl:value-of select="...."/></xsl:variable>
<xsl:variable name="dog_id"><xsl:value-of select="...."/></xsl:variable>
4

2 に答える 2

2

効率<xsl:variable name="cat_id" select="//pet[@type = 'cat']/@id"/>的なアクセスが必要な場合は、キーを定義する直接的な方法です

<xsl:key name="pet-by-type" match="pet" use="@type"/>

そして使用する

<xsl:variable name="cat_id" select="key('pet-by-type', 'cat')/@id"/>

.

于 2013-09-04T17:10:57.387 に答える
0

私はこのようなことを試してみます

<xsl:variable name="cat_id"><xsl:value-of select="pet[@type='cat']/@id "/ ></xsl:variable>

ただし、入力 xml での実際の位置にも依存します。

于 2013-09-04T17:07:41.037 に答える