我遇到了像这样的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
吗?
答案 0 :(得分:1)
.
的位置步骤是self::node()
的缩写。这是特别的 与//.
结合使用例如,位置路径.//para
是self::node()/descendant-or-self::node()/child::para
的缩写 所以将选择上下文节点的所有para后代元素。
答案 1 :(得分:1)
但是什么呢。在//之前意味着什么?
表示“当前节点”。
但代码中的当前路径是什么?它是根路径吗?然后它可以写成/// outline?
当前路径是您要搜索的节点。根本没有必要(但对于上面例子中的tree
而言)。