gpt4 book ai didi

xpath 表达式根据兄弟值读取值

转载 作者:行者123 更新时间:2023-12-03 16:04:44 25 4
gpt4 key购买 nike

我在 xml 下面,想读取名称与“test2”匹配的“值”标签的值。我正在使用下面的 xpath ,但没有用。有人可以帮忙吗。
/*[ local-name()='OutputData']/*[ local-name()='OutputDataItem']/*[ local-name()='Name'][normalize-space(.) = 'test2']//*[local-name()='Value']/text()

             <get:OutputData>
<get:OutputDataItem>
<get:Name>test1</get:Name>
<get:Value/>
</get:OutputDataItem>
<get:OutputDataItem>
<get:Name>test2</get:Name>
<get:Value>B5B4</get:Value>
</get:OutputDataItem>
<get:OutputDataItem>
<get:Name>test3</get:Name>
<get:Value/>
</get:OutputDataItem>
<get:OutputDataItem>
<get:Name>OP_VCscEncrptCd_VAR</get:Name>
<get:Value/>
</get:OutputDataItem>
</get:OutputData>

谢谢

最佳答案

你很接近,但是因为 get:nameget:value是 sibling ,您需要稍微调整一下 XPath。

您的 XPath 试图寻址 get:value get:name 的后代元素,而不是 sibling 。移动过滤 get:name 的条件进入谓词,然后进入 get:value :

/*[ local-name()='OutputData']/*[ local-name()='OutputDataItem']
[*[ local-name()='Name'][normalize-space(.) = 'test2']]/*[local-name()='Value']/text()

您还可以在 get:name 上组合谓词过滤器的条件。并使用 and :
/*[ local-name()='OutputData']/*[ local-name()='OutputDataItem']
[*[ local-name()='Name' and normalize-space(.) = 'test2']]/*[local-name()='Value']/text()

关于xpath 表达式根据兄弟值读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42449735/

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