xpathgetpath()
で完全なタグ名を返すようにするか、回避策を見つけるのを手伝ってくださいgetpath()
の要素へのxpathを生成しようとしていlxml.etree._ElementTree
ます。ElementTree
いくつかの本番Webサービスからの600Kb応答を解析することによって生成されます。
print elem.getroottree().getpath(elem)
これが私が得た結果です:
'/S:Envelope/S:Body/ns5:getPhysicalResponse/*[18]/*[12]/*[6]/*[2]'
残念ながら、元のxmlを投稿することはできません。独自の顧客情報が含まれています。また、100個のネストされたレベルを持つ自動生成された単純な要素ツリーでこの結果を再現しようとしました。各レベルには100個の子がありますが、運がありませんgetpath()
。完全なタグ名でxpathが返されます。
lxmlソースコード
を調べて更新tree.h
xmlGetNodePath
します-ライブラリのメソッドを指しlibxml2
ます。つまり、これは実際libxml2
の動作です。
更新 さらにテストを行うと、タグにデフォルト以外の名前空間があるたびにこれが発生することがわかりました。