我必须添加包含冒号':'符号的标记,但python不喜欢它:
我的代码是:
temp = etree.SubElement(OTHER, 'IDS:OwnedPropertyRentNetCust')
temp.text = 'true'
它返回下一个错误:
Invalid tag name u'IDS:OwnedPropertyRentNetCust'
如何使用冒号创建元素?
最终标签必须是:
<IDS:OwnedPropertyRentNetCust>
答案 0 :(得分:2)
具有冒号:
的XML元素绑定到命名空间并使用命名空间前缀。 :
之前的值是namespace-prefix,它类似于引用命名空间值的变量。
有两种方法可以创建绑定到命名空间的元素。
您可以提供QName():
,而不是元素名称的字符串from xml.etree import ElementTree as ET
IDS_NS = "http://whatever/the/IDS/namespace/value/is" #adjust this to the real IDS NS
ET.register_namespace("IDS", IDS_NS)
et.SubElement(root, et.QName(IDS_NS, "OwnedPropertyRentNetCust"))
使用Clark notation,其中包含字符串值中的命名空间和元素local-name()
:
from xml.etree import ElementTree as ET
IDS_NS = "http://whatever/the/IDS/namespace/value/is"
ET.register_namespace("IDS", IDS_NS)
et.SubElement(root, "{http://whatever/the/IDS/namespace/value/is}OwnedPropertyRentNetCust")