gpt4 book ai didi

xslt - xpath 查找当前节点的值

转载 作者:行者123 更新时间:2023-12-03 15:36:11 25 4
gpt4 key购买 nike

我有几个具有相同 Name='UPC' 的节点,我需要找到当前节点的值。

<XML>
<Attribute>
<Name>UPC</Name>
<Type>ComplexAttr</Type>
<Value>Testing</Value>
</Attribute>
<Attribute>
<Name>UPC</Name>
<Type>ComplexAttr</Type>
<Value>24a</Value>
</Attribute>
</XML>

预期输出:
它应该从/Attribute/Value 中提取值,其中 Name='UPC' 和 Type ='ComplexAttr'。

第一次运行 = '测试' &
在第二次运行时,该值应为 = '24a'

我正在尝试使用以下代码,但它不起作用。该值为空。
<xsl:attribute name ="value">
<xsl:value-of select =".//Attribute[Type='ComplexAttr' and Name = 'UPC'][$i]/Value" />
</xsl:attribute>

在哪里 $i 是我用来循环遍历上述 xml 的变量,每次运行后它都会递增。但是,它只给了我相同的值' 测试 ' (这是第一个值)在每次运行中。我检查了变量的值。每次循环时它都会发生变化。

我也尝试过使用下面的 current() 和 position() ,但在这种情况下我得到了 null 。
<xsl:value-of select =".//Attribute[Type='ComplexAttr' and Name = 'UPC'][current()]/Value" />

<xsl:value-of select =".//Attribute[Type='ComplexAttr' and Name = 'UPC'][position() = $i]/Value" />

有人可以帮我解决这个问题。提前致谢。

最佳答案

这是最大的常见问题解答之一 :
[]运算符的绑定(bind)比 // 更强缩写。

为了选择 XML 文档中满足谓词中特定条件的第一个元素,请使用 :

(//Attribute[Type='ComplexAttr' and Name = 'UPC'])[1]/Value

为了选择 XML 文档中满足谓词中特定条件的第二个元素,请使用 :
(//Attribute[Type='ComplexAttr' and Name = 'UPC'])[2]/Value

为了选择$i XML 文档中满足谓词中特定条件的第一个元素,使用 :
(//Attribute[Type='ComplexAttr' and Name = 'UPC'])[position() = $i]/Value

关于xslt - xpath 查找当前节点的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5642214/

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