1

SVNのビルド番号に一致するようにVersionCodeの変更を自動化しようとしています。Pythonを使用してAndroidマニフェストを解析し、ファイルを保存し直そうとしています。

この方法で特定のノードを見つけるために要素ツリーを使用しています

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(例)に設定し、マニフェストのフォーマットやxmlデータを失うことなく、ファイルを同じfileNameパスに保存したいと思います。これを行うにはどうすればよいですか?

私はこれがうまくいくことを知っています

 root.attrib["{http://schemas.android.com/apk/res/android}versionCode] " = versionCode

ET.dumpを実行すると、変更されたファイルが表示されるためです。しかし、データや形式を失うことなく、ここから同じ場所に保存するにはどうすればよいですか?

4

1 に答える 1

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)
于 2015-04-30T14:46:21.910 に答える