gpt4 book ai didi

python - ElementTree findall 'or' 运算符

转载 作者:太空狗 更新时间:2023-10-30 01:01:46 25 4
gpt4 key购买 nike

如果我有这样一个 xml 文件:

<root>
<item>
<prop>something</prop>
</item>
<test>
<prop>something</prop>
</test>
<test2>
<prop>something</prop>
</test2>
</root>

我可以用xmlTree.getroot().findall("item")获取所有“项目”元素。

我如何获得所有“项目”或“测试”元素?我想要这样的东西:

xmlTree.getroot().findall("项目或测试")

我在文档的示例中没有看到类似的内容。有什么想法吗?

最佳答案

ElementTree来自 stdlib 的 仅提供有限的 xpath 支持,只有在使用 lxml 时,您才能使用 | xpath OR 运算符:

from lxml import etree as ET


data = """<?xml version="1.0"?>
<data>
<item>1</item>
<test>2</test>
</data>"""

tree = ET.fromstring(data)

for element in tree.xpath('//item|//test'):
print element.text

打印:

1
2

xml.etree.ElementTree 的情况下,您可以合并两个单独的 findall() 调用的结果:

for element in tree.findall('.//item') + tree.findall('.//test'):
print element.text

或者,检查循环内的标签名称:

for element in tree.iter():
if element.tag in ('item', 'test'):
print element.text

关于python - ElementTree findall 'or' 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22560862/

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