2014-07-01 47 views
0

我是python xml解析的新手。 我使用elementtree概念解析xml文件。访问xml文件的非标签元素

我经历了domumentation,我写了一个Python脚本。

doc = parse(filePath) 

name = doc.getElementsByTagName('package') 

print(name) 
child_name = name[0] 
print(child_name) 
print(child_name.tag) 
print(child_name.attrib) 

代码在一定程度上起作用,但child_name.tag和child_name.attrib的输出不起作用。当我执行我得到了自己的错误:

AttributeError: 'Element' object has no attribute 'tag' 

在程序包具有ID,姓名,别名,注释说明等元素的XML文件。 我需要访问这些东西。

谁能告诉我,应该怎样解决这个问题

回答

0

这些

print(child_name.tag) 
print(child_name.attrib) 

两个会给出错误。

接近这一点:

print(child_name['tag']) 
print(child_name['attrib']) 

但是,这样做的方法,当你需要绝对保证结构不会改变。

一种方法是使用

try: 
    print(child_name['tag']) 
    print(child_name['attrib']) 
catch: 
    pass 

哪里pass是你应该考虑不同的索引。

对于这部分你可以:

for item in name: 
    print(item) 
+0

嗨,我试图用你建议的方式。但我仍然无法与之相伴。我没有再次得到任何输出,但是我仍然可以得到如下输出:''。但是如何访问这些元素,仍然是我试图找出的东西。 – sankar

+0

尝试使用'the_page = xmltodict.parse(doc)'确保'import xmltodict'。然后,您应该能够对文件执行字典访问。否则试试这个:http://stackoverflow.com/questions/18834393/python-xml-file-open –

+0

我解决了这个问题,这是一个简单的问题,我使用'root.iter('package')',我得到了我需要的输出。 – sankar