2013-03-19 124 views
4

請幫忙做的getPath()在返回的getPath完整標籤名稱()XPath或找到解決方法lxml._ElementTree.getpath(element)返回

我試圖在lxml.etree._ElementTree中生成xpath元素。 ElementTree是通過解析來自某些生產WebService的600Kb響應生成的。

print elem.getroottree().getpath(elem) 

下面是結果我得到:

'/S:Envelope/S:Body/ns5:getPhysicalResponse/*[18]/*[12]/*[6]/*[2]' 

不幸的是我不能發佈原始XML - 它包含了專有的客戶信息。 另外我試圖用自動生成的簡單元素樹來重現這個結果,它有100個嵌套關卡,每個關卡有100個孩子但沒有運氣 - getpath()返回帶有完整標籤名稱的xpath。

更新 展望lxml source code - 它指向從libxml2的tree.h中xmlGetNodePath方法。所以這實際上是libxml2行爲。

更新 做了更多的測試我發現每次標籤有非默認命名空間時都會發生這種情況。

回答

0

使用getelementpath()和後處理命名空間,只要你喜歡。

相關問題