XML文件
<?xml version="1.0" encoding="utf-8"?>
<Info xmlns="BuildTest">
<RequestDate>5/4/2020 12:27:46 AM</RequestDate>
</Info>
我想在 Info
标签。
我是这样做的。
import xml.etree.ElementTree as ET
tree = ET.parse('example.xml')
root = tree.getroot()
ele = ET.Element('element1')
ele.text = 'ele1'
root.append(ele)
tree.write("output.xhtml")
輸出
<ns0:Info xmlns:ns0="BuildTest">
<ns0:RequestDate>5/4/2020 12:27:46 AM</ns0:RequestDate>
<element1>ele1</element1></ns0:Info>
三个问题。
<?xml version="1.0" encoding="utf-8"?>
丢失。whitespace
的新元素不见了。我看到很多与这个话题相关的问题,大部分都是建议使用其他的包,有什么办法可以正确处理吗?
处理指令不被认为是XML元素。只是谷歌 是XML处理指令的一部分,以及第一个结果状态。
处理指令 是标记,但它们不是元素。
因为你所使用的包实际上叫做 ElementTree
,你可以合理地期望它的对象是元素树。如果我没记错的话,符合DOM标准的XML包可以支持XML中的非元素标记。
对于命名空间的问题,答案在堆栈溢出中,在 从XML中删除ns0 - 你只需要在文档的顶部元素中注册你指定的命名空间。下面的方法对我很有效。
ET.register_namespace("", "Buildtest")
至于空白处 - 新元素没有任何空白处。你可以把这个元素分配给 tail
成员在元素后添加一个换行符。