[英]How to convert an xml element object into a string with a namespace prefix in Python?
我有以下代码:
from lxml.etree import tostring, Element, SubElement
element = Element('mytag')
sub_element = SubElement(element, 'mysubtag')
print(tostring(element, pretty_print=True).decode('utf-8'))
输出:
<mytag>
<mysubtag/>
</mytag>
我应该以哪种方式对其进行修改,以便为每个标签添加一个名称空间前缀,以产生这样的结果:
<mynspref:mytag>
<mynspref:mysubtag/>
</mynspref:mytag>
使用register_namespace()
将前缀与名称空间URI关联,并在创建元素时使用该URI。
from lxml import etree
NS = "http://www.example.com"
etree.register_namespace("mynspref", NS)
element = etree.Element('{%s}mytag' % NS)
sub_element = etree.SubElement(element, '{%s}mysubtag' % NS)
print(etree.tostring(element, pretty_print=True).decode('utf-8'))
结果:
<mynspref:mytag xmlns:mynspref="http://www.example.com">
<mynspref:mysubtag/>
</mynspref:mytag>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.