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 pathcurrent 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 と書けるでしょうか?

現在のパスは、検索元のノードです。ルートは必要ありません (ただしtree、上記の例ではそうです)。

于 2013-01-29T06:10:00.597 に答える