與此python 2.7.3(或2.7.0)代碼我想更改屬性值「android:versionCode ='2'」,其中有命名空間前綴「機器人」:Python 2.7:類型對象「ElementTree」沒有屬性「register_namespace」
#!/usr/bin/python
from xml.etree.ElementTree import ElementTree, dump
import sys, os
# Problem here:
ElementTree.register_namespace("android", "http://schemas.android.com/apk/res/android")
tree = ElementTree()
tree.parse("AndroidManifest.xml")
root = tree.getroot()
root.attrib["{http://schemas.android.com/apk/res/android}versionCode"] = "3"
dump(tree)
當不使用與評論說:「問題就在這裏」代碼行,ElementTree的是自動命名的命名空間別名http://schemas.android.com/apk/res/android爲「NS0」(導致「NS0:的versionCode ='3'「
因此,我使用ElementTree.register_namespace將名稱空間url映射到別名」android「,該文件記錄爲here。
我得到的,當我嘗試這樣做的錯誤是:
AttributeError: type object 'ElementTree' has no attribute 'register_namespace'
任何人都知道這是爲什麼不工作?這個方法應該在Python 2.7中可用。
輝煌,僅此而已。謝謝伯尼。 – derFunk
乾杯,隊友。快樂的編碼給你 – bernie
有5個堆棧溢出類似的問題,這是唯一正確的答案,謝謝 – seibelj