Python etree控件空标记格式

发布于 2021-01-29 18:04:48

当使用Python的etree创建XML文件时,如果使用将空标签写入文件,则会SubElement得到:

<MyTag />

不幸的是,即使它是正确的标签,我们在Fortran中使用的XML解析器库也无法处理此问题。它需要看到:

<MyTag></MyTag>

有没有一种方法可以更改格式化规则或etree中的某些方法来完成这项工作?

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    从Python
    3.4开始,您可以short_empty_elementstostring()函数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!



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看