解析Android Manifest File以使用python查找uses-permission标记

时间:2013-09-26 12:29:38

标签: android python xml dom xml-parsing

我正在解析android应用程序中提到的xml文件(androidmanifest.xml)中的uses-permission标记

我已经尝试实现一个for循环来使它迭代,但我失败了,所以我在这里

的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

1 个答案:

答案 0 :(得分: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.toxml()替换为node.getAttribute('android:name')