gpt4 book ai didi

xml - 在嵌套节点中获取唯一的 XPath 节点值

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

我是 XPath 的新手,所以我需要一些帮助来解决这个问题。我有一个像这样的 XML 文件:

<items>
<item>
<brandName>Brand 1</brandName>
<productTypes>
<productType>Type 1</productType>
<productType>Type 3</productType>
</productTypes>
</item>
<item>
<brandName>Brand 1</brandName>
<productTypes>
<productType>Type 2</productType>
<productType>Type 3</productType>
</productTypes>
</item>
<item>
<brandName>Brand 2</brandName>
<productTypes>
<productType>Type 4</productType>
<productType>Type 5</productType>
</productTypes>
</item>
</items>

我试图找出一种方法来获取特定品牌的所有独特的 productType。例如,“品牌 1”的所有唯一产品类型将输出“类型 1”、“类型 2”、“类型 3”

我一直在谷歌搜索没有多少运气。任何帮助将不胜感激!

最佳答案

这有效:

(/items/item[brandName='Brand 1']/productTypes/productType)[not(text()=preceding::*)]

工作原理:第一个 (...)获取所有 productType品牌名称='品牌 1'。此时我有一个列表 productType节点。现在我选择节点文本不包含在当前节点之前的节点中的节点。

在python中尝试过:
n = libxml2dom.parseString(xml)
[x.textContent for x in n.xpath("(/items/item[brandName='Brand 1']/productTypes/productType)[not(text()=preceding::*)]")]
>>> [u'Type 1', u'Type 3', u'Type 2']

关于xml - 在嵌套节点中获取唯一的 XPath 节点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11105822/

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