gpt4 book ai didi

xml - 检查节点的名称是否是模板 P 中的 Fox

转载 作者:行者123 更新时间:2023-12-04 06:21:43 24 4
gpt4 key购买 nike

在模板名称 P 中,我想检查当前节点的名称是否为 Fox。我想知道人们进行此类检查的常用方法是什么:

<xsl:template name="P">
<xsl:if test="self::Fox">
</xsl:if>
</xsl:template>

或者:
<xsl:template name="P">
<xsl:if test="name(.)='Fox'">
</xsl:if>
</xsl:template>

或:与这 2 个相比,还有其他更好的解决方案吗?

最佳答案

我想你会发现很多人用[name()='Fox']但推荐的方式,也是专家使用的方式,是使用self::Fox .这样做的主要原因是当周围有命名空间时 name() 不可靠,并且测试 namespace-uri() 和 local-name() 的替代方法既麻烦又冗长。此外,许多 XPath 引擎都有搜索具有给定名称的元素的方法,而不涉及对每个元素进行字符串比较。因为 name()= Fox 的评估需要查看命名空间前缀,而不是 URI,这是一种不常见的操作,它也可能效率较低。

关于xml - 检查节点的名称是否是模板 P 中的 Fox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6463497/

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