我正在尝试自动更改我的VersionCode以匹配SVN的内部版本号。我正在使用python来解析Android Manifest并尝试将文件保存回来。
我正在使用Element树以这种方式查找特定节点
def setVersionCode(fileName,versionCode):
ET.register_namespace("android", "http://schemas.android.com/apk/res/android")
tree = ET.ElementTree()
tree.parse(fileName)
root = tree.getroot() #This returns the root node
root.attrib["{http://schemas.android.com/apk/res/android}versionCode] " #This gives me the current Version code
然后像这样称呼它
setVersionCode(pathToTheManifest,"500")
我想将versionCode设置为500(示例)并将文件保存回相同的fileName路径,而不会丢失任何Manifest格式或xml数据。 我该怎么做呢 ?
我知道这有效
root.attrib["{http://schemas.android.com/apk/res/android}versionCode] " = versionCode
因为当我执行ET.dump时它会显示已更改的文件。但是如何从这里将它保存回同一个地方而不会丢失数据或格式?
答案 0 :(得分:0)
尝试使用write方法
def setVersionCode(fileName,versionCode):
ET.register_namespace('android', 'http://schemas.android.com/apk/res/android')
tree = ET.parse(fileName)
root = tree.getroot();
root.attrib["{http://schemas.android.com/apk/res/android}versionCode"] = versionCode
tree.write(fileName)