2012-07-23 88 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