0

我遇到了这样的 Xpath:

from xml.etree import ElementTree

with open('podcasts.opml', 'rt') as f:
    tree = ElementTree.parse(f)

for node in tree.findall('.//outline'):
    pass

我知道那是什么//意思any matches,但是.之前的//意思是什么?那是什么意思relative path?但是current path代码中的内容是什么?是根路径吗?那么它可以写成///outline吗?

4

2 回答 2

1

位置步长.是 的缩写self::node()。这在结合使用时特别有用,//. 例如,位置路径.//para 是缩写self::node()/descendant-or-self::node()/child::para,因此将选择上下文节点的所有 para 后代元素。

引自http://www.w3.org/TR/xpath/

于 2013-01-29T06:09:13.603 回答
1

但是 . //之前是什么意思?

它的意思是“当前节点”。

但是代码中的当前路径是什么?是根路径吗?那么可以写成 ///outline 吗?

Current path is the node you're searching from. It's not necessary the root (but for tree in the above example it is).

于 2013-01-29T06:10:00.597 回答