python lxml如何查找多个标记?

python lxml how to find multiple markup?

我知道如果我想找到我可以使用的所有 a 个节点 root.xpath('.//a')。但是如果我想遍历所有ab个节点(深度优先搜索)怎么办?

<?xml version="1.0"?>
<root>
    <x><a>one</a></x>
    <x><x><b>three</b></x></x>
    <b>three</b>
</root> 

有一些可能的方法,这里是其中的一些。

使用联合运算符 (|) :

.//a | .//b

使用 or 运算符允许多个可能的 self::element,如评论中所述:

.//*[self::a or self::b]

或两者混合:

.//*[self::a | self::b]