2014-07-01 79 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