ATOM xml ドキュメントのサブツリーで要素を検索する動的関数を作成する必要があります。
そうするために、私は次のようなものを書きました:
tree = etree.parse(xmlFileUrl)
e = etree.XPathEvaluator(tree, namespaces={'def':'http://www.w3.org/2005/Atom'})
entries = e('//def:entry')
for entry in entries:
mypath = tree.getpath(entry) + "/category"
category = e(mypath)
上記のコードはカテゴリを見つけることができません。
その理由は、getpath が名前空間なしで XPath を返すのに対し、XPathEvaluator e() は名前空間を必要とするためです。
getpath がパス内の名前空間を返すようにする方法、または XPathEvaluator が名前空間を指定せずに (または、別の方法で指定して) パスを受け入れるようにする方法はありますか?