在python中解析AndroidManifest.xml时发生ParseError

时间:2018-11-28 16:33:31

标签: python xml android-manifest

我正在尝试解析AndroiManifest.xml文件以获取信息,并且在给文件充电时出现此错误

  

xml.etree.ElementTree.ParseError:格式不正确(无效的令牌):   第1行,第0列

这是我的代码:

import xml.etree.cElementTree as ET

tree = ET.ElementTree(file='AndroidManifest.xml')
root = tree.getroot()

我的XML文件看起来格式正确:

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionCode="132074037"
    android:versionName="193.0.0.21.98"
    android:installLocation="0"
    package="com.facebook.orca">

如何解决该问题并解析XML以获取'android:versionName'标签?

1 个答案:

答案 0 :(得分:1)

已解决

解压缩apk后,我试图解析AndroidManifest.xml,但是使用此方法,由于对AndroidManifest.xml进行了编码,因此无法打开,读取或解析它。我只能使用自动解码AndroidManifest文件的Android Studio来读取它。

要在解压缩apk之后解析AndroidManifest.xml,最好的方法是使用aapt命令行:

 /Users/{Path_to_your_sdk}/sdk/build-tools/28.0.3/aapt dump
 badging com.squareup.cash.apk | sed -n
 "s/.*versionName='\([^']*\).*/\1/p"

您将获得应用程序的versionName。希望对您有所帮助。