【发布时间】:2014-07-21 17:38:23
【问题描述】:
有没有办法使用.findall()匹配树中的多个元素?
我想这样做:
trees = log.findall('element1' or 'element2')
这是我的解决方法(在我的情况下有效,因为我在同一个 XML 中没有 e1 和 e2):
trees = log.findall('element1')
if not trees:
trees = log.findall('element2')
我正在解析结构相似但名称不同的 XML 文件。 C# 允许“element1 | element2”匹配。
【问题讨论】:
-
根据您的解决方法,如果 element1 和 element2 中都有元素怎么办?
-
好点。我编辑问题更清楚。我正在使用 1 或 2 的样板代码,从不同时使用。
-
@user3769076: 你能要求
lxml并使用lxml.etree代替标准库xml.etree吗?它通常用作直接替代品,并在此处提供更好的答案。