删除“的xmlns:PY ......”与lxml.objectify(Remove “xmlns:

2019-10-19 08:26发布

我刚刚发现lxml.objectify这似乎读好,易于/写简单的XML文件。

首先,它是用一个好主意lxml.objectify ? 比如是不是成熟,仍然制定并可能在未来可用?

其次,如何防止objectify从addding标记类似xmlns:py="http://codespeak.net/lxml/objectify/pytype" py:pytype="str"在下面的输出?


输入:config.xml中

<?xml version="1.0" encoding="utf-8"?>
<Test>
  <MyElement1>sdfsdfdsfd</MyElement1>
</Test>

from lxml import etree, objectify

with open('config.xml') as f:
    xml = f.read()
root = objectify.fromstring(xml)

root.Information = 'maybe'

print etree.tostring(root, pretty_print=True)

产量

<Test>
  <MyElement1>sdfsdfdsfd</MyElement1>
  <Information xmlns:py="http://codespeak.net/lxml/objectify/pytype" py:pytype="str">maybe</Information>
</Test>

Answer 1:

如这里指出: 当使用LXML,可以在XML在没有名称空间的属性呈现? ,这足以防止这种情况xmlns标记出现:

objectify.deannotate(root, xsi_nil=True)
etree.cleanup_namespaces(root)


文章来源: Remove “xmlns:py…” with lxml.objectify