如何在python中将xml元素对象转换为带有名称空间前缀的字符串? [英] How to convert an xml element object into a string with a namespace prefix in Python?

查看:59
本文介绍了如何在python中将xml元素对象转换为带有名称空间前缀的字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码:

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>

我应该以哪种方式对其进行修改,以便为每个标签添加一个名称空间前缀以产生这样的结果:

In which way should I modify it to add a namespace prefix to each tag to have such result:

<mynspref:mytag>
  <mynspref:mysubtag/>
</mynspref:mytag>

推荐答案

使用 register_namespace()将前缀与名称空间URI关联,并在创建元素时使用该URI.

Use register_namespace() to associate the prefix with a namespace URI and use that URI when creating elements.

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>

这篇关于如何在python中将xml元素对象转换为带有名称空间前缀的字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆