Python etree控件空标记格式
当使用Python的etree创建XML文件时,如果使用将空标签写入文件,则会SubElement
得到:
<MyTag />
不幸的是,即使它是正确的标签,我们在Fortran中使用的XML解析器库也无法处理此问题。它需要看到:
<MyTag></MyTag>
有没有一种方法可以更改格式化规则或etree中的某些方法来完成这项工作?
-
从Python
3.4开始,您可以short_empty_elements
在tostring()
函数和ElementTRee.write()
方法中使用参数:>>> from xml.etree import ElementTree as ET >>> ET.tostring(ET.fromstring('<mytag/>'), short_empty_elements=False) b'<mytag></mytag>'
在较旧的Python版本(2.7到3.3)中,作为一种解决
html
方法,您可以使用方法写出文档:>>> from xml.etree import ElementTree as ET >>> ET.tostring(ET.fromstring('<mytag/>'), method='html') '<mytag></mytag>'
无论是
ElementTree.write()
方法和tostring()
功能支持method
关键字参数。在甚至更早版本的Python(2.6和更早版本)上,您都可以安装外部ElementTree库。1.3版支持该关键字。
是的,听起来有点奇怪,但是
html
输出大部分输出空元素作为开始和结束标签。有些元素仍然以空标签元素结尾;特别<link/>
是<input/>
,<br/>
等等。尽管如此,还是升级Fortran
XML解析器以实际解析符合标准的XML!