2012-07-23 86 views
0

我试图解析AndroidManifest xml文件进行一些分析。解析这个的最佳方式是什么?到目前为止,这是我在做什么解析AndroidManifest.xml

import string 
test=string.printable 
f=open('AndroidManifest.xml', 'r').read() 
x="" 
for n in f: 
     if n in test: 
       x+=n 
print x 

,其结果是或多或少:

d 74Rv vzPVZVL :Pd>P l versionCode minSdkVersiontargetSdkVersionnameiconlabel versionName configChangespriorityandroid*http://schemas.android.com/apk/res/androidpackagemanifestngjvnpslnp.iplhmk1.0uses-sdkuses-permission#android.permission.READ_PHONE_STATE'android.permission.ACCESS_NETWORK_STATEandroid.permission.

这是它只是一个部分。正如你所看到的,这非常糟糕。任何帮助,将不胜感激。

编辑:

所以当我用解析

Traceback (most recent call last): 
    File "test2.py", line 4, in <module> 
    dom = parse(f) 
    File "/usr/lib/python2.7/xml/dom/minidom.py", line 1914, in parse 
    return expatbuilder.parse(file) 
    File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 928, in parse 
    result = builder.parseFile(file) 
    File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 207, in parseFile 
    parser.Parse(buffer, 0) 
    xml.parsers.expat.ExpatError: not well-formed (invalid token): line 1, column 0 

回答

2

我会建议使用XML解析器,而不是纯文本解析它,我得到这个奇怪的回溯。

Here's some excellent documentation on minidom

+0

嗯当我尝试使用解析我得到奇怪的追溯错误我编辑了我的答案。 – 2012-07-23 12:12:37

+0

显示你的新密码,然后我可以指引你正确的方向。从堆栈跟踪中,我会说你没有正确读取文件。 – Brad 2012-07-23 23:36:30