gpt4 book ai didi

xml - 如何在子节点中选择包含某个子字符串的节点?

转载 作者:行者123 更新时间:2023-12-03 17:06:28 25 4
gpt4 key购买 nike

我有一个类似结构的XML,其中包含许多项目:

<Items>
<Item>
<Name>Item name 1</Name>
<Details>
<Detail>ABC DEF</Detail>
<Detail>GHI JKL</Detail>
</Details>
</Item>
<Item>
<Name>Item name 2</Name>
<Details>
<Detail>ABC DEF</Detail>
<Detail>GHI MNO</Detail>
</Details>
</Item>
</Items>


如何获得至少在其详细信息子节点之一中包含子字符串“ MNO”的所有Item节点的列表?

此表达式不返回带有描述“项目名称2”的预期项目:

/Items/Item[contains(Details/Detail, 'MNO')]


请指教。提前谢谢了! Vojtech

最佳答案

这是工作变体:

/Items/Item[Details/Detail[contains(.,"MNO")]]

基本上,您的示例中发生的情况是:仅在第一个Detail节点中搜索“ MNO”字符串以查找是否包含。因此,如果您将XML更改为:

<Items>
<Item>
<Name>Item name 1</Name>
<Details>
<Detail>ABC DEF</Detail>
<Detail>GHI JKL</Detail>
</Details>
</Item>
<Item>
<Name>Item name 2</Name>
<Details>
<!-- Nodes order was changed -->
<Detail>GHI MNO</Detail>
<Detail>ABC DEF</Detail>
</Details>
</Item>
</Items>


您的XPath可以正常工作。

关于xml - 如何在子节点中选择包含某个子字符串的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8444948/

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