с этим кодом python 2.7.3 (или 2.7.0) Я хочу изменить значение атрибута "android: versionCode = '2", который имеет префикс пространства имен "android":
#!/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", который документирован здесь.
Ошибка, возникающая при попытке сделать это:
AttributeError: type object 'ElementTree' has no attribute 'register_namespace'
Кто-нибудь знает, почему это не работает? Этот метод должен быть доступен в python 2.7.