当前位置: 首页 > 面试题库 >

Python etree控件空标记格式

汪坚
2023-03-14
问题内容

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

<MyTag />

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

<MyTag></MyTag>

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


问题答案:

从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!



 类似资料:
  • 我在facets上有一些问题,用空格标记标签。 我有以下映射: 我的问题是: 输出结果为: 现在,我在facets中得到了total 0,在hits中得到了total:0 知道为什么它不能工作吗? 我知道,当我从标记中删除关键字分析器并使其为“not_analysis”时,我会得到结果。 但是仍然存在区分大小写的问题。 如果通过删除关键字分析器来运行上述相同的查询,则得到的结果是: 这里的Vict

  • 感谢这里关于堆栈溢出的答案和一些小时的工作;),我的语法终于如期发挥作用了。只是一些小问题或混乱的情况。 以下是我对lexer的定义: 下面是解析器的定义: 看起来lexer文件开头的成员定义在带有ANTLR4插件的IntelliJ IDEA中不起作用?还是我在定义中遗漏了什么。 在标题的定义中,我试图允许开始空白。但是无论我尝试什么,解析过程都失败了。我添加了一个WS标记[\t],但是当我将WS

  • 我已经在Chrome(65.0.3325.162)、Firefox(59.0.1)和Android(在三星平板上)上进行了测试。我的系统的音量对其他应用程序和YouTube视频都很好。 下面是(最小的)代码(添加其他属性,如高度和海报等,对问题没有影响): 我是不是漏掉了什么明显的东西? 编辑: 当我在上使用示例视频进行测试时,出现了控件。似乎和编码的mp4视频本身有关系。 我现在已经删除了视频U

  • 为什么两个 标记之间有空格?当我设置 标记的宽度时,它不起作用。我将其设置为 ,但两个 标记之间仍有空格。如何从 标记中删除空格? 以下是HTML和CSS代码: null null

  • 在foo之间匹配所有内容相当简单: 但是搜索\s不起作用: