gpt4 book ai didi

xslt - 检查属性等于值的节点是否存在

转载 作者:行者123 更新时间:2023-12-04 02:53:59 24 4
gpt4 key购买 nike

我有以下 XSLT 变量:

<xsl:variable name="superid" select="/contentdata/id"/>

此外,我有一个带有子节点的节点:
<nodes>
<node name="foo" id="bar" />
<node name="john" id="doe" />
<node name="jane" id="tarzan" />
</nodes>

现在,我想检查是否存在具有等于 superid 的 id 属性的节点。

我已经尝试了以下(显然不起作用):
<xsl:if test="/nodes/node[@id = $superid]">Yes, Sir!</xsl:if>

最佳答案

使用 :

boolean(/nodes/node/@id = $superid)

这是一个完整的转换,在行动中展示了这一点 :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>

<xsl:variable name="vDoe" select="'doe'"/>
<xsl:variable name="vXyz" select="'xyz'"/>

<xsl:template match="/">
id attribute with value "doe' exists: <xsl:text/>
<xsl:value-of select="boolean(/nodes/node/@id = $vDoe)"/>
==========
id attribute with value "xyz' exists: <xsl:text/>
<xsl:value-of select="boolean(/nodes/node/@id = $vXyz)"/>
</xsl:template>
</xsl:stylesheet>

当此转换应用于提供的 XML 文档时 :
<nodes>
<node name="foo" id="bar" />
<node name="john" id="doe" />
<node name="jane" id="tarzan" />
</nodes>

产生了想要的、正确的结果 :
     id attribute with value "doe' exists: true
==========
id attribute with value "xyz' exists: false

关于xslt - 检查属性等于值的节点是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8411906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com