Xpath中的`.`是什么意思?

时间:2013-01-29 06:02:49

标签: python xml elementtree

我遇到了像这样的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吗?

2 个答案:

答案 0 :(得分:1)

  

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

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

答案 1 :(得分:1)

  

但是什么呢。在//之前意味着什么?

表示“当前节点”。

  

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

当前路径是您要搜索的节点。根本没有必要(但对于上面例子中的tree而言)。