0

我有以下数据:

<books>
    <entry id="8">
        <author name="tony-blair">Tony Blair</author>
    </entry>
    <entry id="9">
        <author name="william-campbell">William Campbell</author>
    </entry>
</books>

并使用以下模板

<xsl:template match="books/entry">
    <xsl:value-of select="author"/>
    <xsl:value-of select="ancestor::books/entry/@id"/>
</xsl:template>

我尝试使用ancestor::books/entry/@id,但它只产生第一个 id。
当我们处于当前位置条目时如何获取父条目ID?

4

3 回答 3

1
<xsl:template match="books/entry">
    <xsl:value-of select="author"/>
    <xsl:value-of select="@id"/>
</xsl:template>
于 2013-09-09T09:55:46.380 回答
0

在一个

<xsl:template match="books/entry">

当前上下文节点是entry元素,所以你可以使用

<xsl:value-of select="@id" />

您无需上到books元素并再次返回。

于 2013-09-09T09:56:17.460 回答
0
<xsl:template match="entry">
    <xsl:value-of select="author"/>
    <xsl:value-of select="@id"/>
</xsl:template>

正如其他人所说,您不需要在树上上下走动。书籍/条目是一个微小的性能优化,但似乎你还没有,所以保持简单,你可能不会处理大量文档。

于 2013-09-09T10:24:41.787 回答