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 回答