我有一些XML标记,如下所示:
<pet type="dog" id="76">
</pet>
<pet type="cat" id="79">
</pet>
在这种特殊情况下,使用XSLT - 创建变量来检索cat and dog 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>
答案 0 :(得分: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"/>
答案 1 :(得分:0)
我会尝试这样的事情
<xsl:variable name="cat_id"><xsl:value-of select="pet[@type='cat']/@id "/ ></xsl:variable>
但它也取决于你在输入xml中的实际位置。