要素へのXPathを動的に構築することにより、ATOMxmlのサブツリーで要素を検索する動的関数を作成する必要があります。
そうするために、私はこのようなものを書きました:
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()は名前空間を必要とするため、「カテゴリ」を見つけることができません。
XPathEvaluatorの呼び出しでパスを使用して名前空間を指定できることはわかっていますが、すべての名前空間を使用してgetpath()に「完全修飾」パスを返すことができるかどうかを知りたいのですが、これは特定の場合に便利です。ケース。
(これは私の以前の質問のスピンオフ質問です:名前空間のないPython XpathEvaluator)