首页 > 解决方案 > 使用带有管道符号的 xpath 搜索 XML |

问题描述

我有一个 XML 文档,并希望找到所有具有属性 =“A”或属性 =“B”的节点。

我有这样的东西,带有一个 xpath 查询,在氧气 XML 编辑器中使用时可以工作:

import xml.etree.ElementTree as ET
tree = ET.parse('xml.xml')
root = tree.getroot()

for text in root.findall('.//node1/node2|//node3[node2[@attribute="A"]|node2[@attribute="B"]]/node2'):
        #get text.text 
        #do something

应该保持原来的顺序。我怎样才能在 python 3 中做到这一点?

标签: xmlpython-3.xxpath

解决方案


ElementTree XML API 提供对 XPath 表达式的有限支持。你应该更好地使用lxml模块


推荐阅读