首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python etree控制空标记格式

Python etree控制空标记格式
EN

Stack Overflow用户
提问于 2019-02-21 06:20:07
回答 2查看 0关注 0票数 0

使用Python的etree创建XML文件时,如果我们使用文件写入空标记SubElement,我会得到:

<MyTag />

不幸的是,我们在Fortran中使用的XML解析器库虽然它是一个正确的标签,却无法处理它。它需要看到:

<MyTag></MyTag>

有没有办法改变格式规则或etree中的某些东西使其工作?

EN

回答 2

Stack Overflow用户

发布于 2019-02-21 14:22:49

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

票数 0
EN

Stack Overflow用户

发布于 2019-02-21 16:04:39

这在Python 3.4中直接解决了。从那时起,write方法xml.etree.ElementTree.ElementTree有以下short_empty_elements参数:

控制不包含内容的元素的格式。如果为True(默认值),则它们作为单个自闭合标记发出,否则它们将作为一对开始/结束标记发出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档