如何在Python中添加包含“:”的xml标记

时间:2018-03-28 14:47:01

标签: python xml

我必须添加包含冒号':'符号的标记,但python不喜欢它:

我的代码是:

temp = etree.SubElement(OTHER, 'IDS:OwnedPropertyRentNetCust')
    temp.text = 'true'

它返回下一个错误:

Invalid tag name u'IDS:OwnedPropertyRentNetCust'

如何使用冒号创建元素?

最终标签必须是:

<IDS:OwnedPropertyRentNetCust>

1 个答案:

答案 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")