XPath 1.0:查找指定节点之前的节点计数



我熟悉在 XSLT 中使用前导轴来确定给定当前上下文的前置元素的数量。 但是,鉴于我存储在变量中的节点,我没有看到执行相同操作的方法。 例如:

<xsl:variable name="matchedBook" select="book[text()='The Hobbit']"/>
<xsl:variable name="precedingBookCount" select="count(???)"/>

给定以下 XML,precedingBookCount应等于 3。

<available>
    <book>Lord of the Rings</book>
    <book>The Hunger Games</book>
</available>
<purchased>
    <book>Ready Player One</book>
    <book>The Hobbit</book>
    <book>Lord of the Flies</book>
</purchased>

我在 XPath 2.0 中看到可以使用一个 NodeComp 运算符<<,但这在 XPath 1.0 中似乎不存在。

那么如何在 XPath 1.0 中执行此操作呢?

<xsl:variable name="precedingBookCount" select="count($matchedBook/preceding-sibling::book | $matchedBook/preceding::book)"/>应该这样做。

实际上,<xsl:variable name="precedingBookCount" select="count($matchedBook/preceding::book)"/>就足够了.

相关内容

  • 没有找到相关文章