2013-09-26 12 views
4

我解析的使用,許可標記,在XML文件中的一個Android應用程序中提到(AndroidManifest.xml中)解析Android清單文件來尋找用途的許可標籤使用python

我試圖實現一個循環使其反覆,但我失敗了,因此我在這裏

的Python:

from xml.dom.minidom import parseString 
file = open('/root/Desktop/AndroidManifest.xml','r') 
data = file.read() 
file.close() 
dom = parseString(data) 
    xmlTag = dom.getElementsByTagName('uses-permission')[0].toxml() 

    print xmlTag 

輸出:

<uses-permission android:name="android.permission.INTERNET"> 
</uses-permission> 

for循環的錯誤:

for uses-permission in xmlTag: 
    #print child.tag, child.attrib 
    print xmlTag.tag 
xmlTag = dom.getElementsByTagName('uses-permission')[1].toxml() 
xmlTag= dom._get_childNodes 
#print xmlTag 

回答

3

要找到所有的許可代碼,請嘗試遍歷節點是dom.getElementsByTagName('uses-permission')的回報,而不是在指數0只訪問節點:

from xml.dom.minidom import parseString 

data = '' 
with open('/root/Desktop/AndroidManifest.xml','r') as f: 
    data = f.read() 
dom = parseString(data) 
nodes = dom.getElementsByTagName('uses-permission') 
# Iterate over all the uses-permission nodes 
for node in nodes: 
    print node.toxml() 

,或者如果你只想許可而不是xml,你可以用node.getAttribute('android:name')代替node.toxml()