2016-07-27 8 views
0

Ich habe folgenden Python-Code:Drucke tatsächlicher XPath mit Python 2.7 ElementTree Bibliothek

from xml.etree import ElementTree as et 
from optparse import OptionParser 
import ConfigParser 
import fileinput, sys 
import os 


config_file = 'ClientConfig.xml' 
tree = et.parse(config_file) 
root = tree.getroot() 

for element in root.findall("/client/config/TEST_CLIENT"): 
    for elem in element.iter(tag='Item'): 
     print elem.tag, elem.attrib 

Gibt es eine Möglichkeit für mich, die XPath direkt für jedes Element zum Wiederaufbau es mit dem elem.tag im Gegensatz zu drucken und elem.attrib Optionen? Das heißt, ich mag jedes Element drucken können, voll XPath

Antwort

0

Sie benötigen würden lxml.etree and getpath() method dafür verwenden:

for element in root.findall("/client/config/TEST_CLIENT"): 
    for elem in element.iter(tag='Item'): 
     print(tree.getpath(elem)) 
+0

Dies ist die Lösung endete als. Ich vermied lxml, aber es ist ElementTree weit überlegen – Zee