xml – 如何在XSL for-each测试中引用当前节点值?

前端之家收集整理的这篇文章主要介绍了xml – 如何在XSL for-each测试中引用当前节点值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个这样的XML文档:
<books>
    <book>1110</book>
    <book>1111</book>
    <book>1112</book>
    <book>1113</book>
</books>

我试图设置一个条件,测试当前节点的值在for-each,但我做错了:

<xsl:for-each select="/books/book">
    <xsl:if test=".[='1112']">
        Success
    </xsl:if>
</xsl:for-each>

我做错了什么?

使用。可以,事实上,引用当前(或“上下文”)节点,但不是你在这里使用它的方式。在XPath中,[foo]不是有效的语法 – 您需要使用self :: node()[foo]。另外,=操作符需要匹配的东西,在这种情况下是text()选择器来访问元素的文本内容
<xsl:for-each select="/books/book">
    <xsl:if test="self::node()[text()='1112']">
        Success
    </xsl:if>
</xsl:for-each>

然而,如其他答案所述,除非你的for-each也执行其他操作,你不需要迭代,可以使用只是如果完成相同的任务:

<xsl:if test="/books/book[. = 1112]">
    Success
</xsl:if>
原文链接:https://www.f2er.com/xml/293516.html

猜你在找的XML相关文章