gpt4 book ai didi

用于从 XML 文件中删除所有注释的 Python 脚本

转载 作者:数据小太阳 更新时间:2023-10-29 01:59:37 26 4
gpt4 key购买 nike

我正在尝试构建一个 python 脚本,它将接收一个 XML 文档并从中删除所有注释 block 。

我尝试了一些方法:

tree = ElementTree()
tree.parse(file)
commentElements = tree.findall('//comment()')

for element in commentElements:
element.parentNode.remove(element)

这样做会从 python 中产生一个奇怪的错误:“KeyError: '()'

我知道有一些方法可以使用其他方法(如 sed )轻松编辑文件,但我必须在 python 脚本中进行。

最佳答案

comment()是 ElementTree 不支持的 XPath 节点测试。

您可以使用 comment() lxml 。这个库与 ElementTree 非常相似,并且完全支持 XPath 1.0。

以下是使用 lxml 删除评论的方法:

from lxml import etree

XML = """<root>
<!-- COMMENT 1 -->
<x>TEXT 1</x>
<y>TEXT 2 <!-- COMMENT 2 --></y>
</root>"""

tree = etree.fromstring(XML)

comments = tree.xpath('//comment()')

for c in comments:
p = c.getparent()
p.remove(c)

print etree.tostring(tree)

输出:

<root>
<x>TEXT 1</x>
<y>TEXT 2 </y>
</root>

关于用于从 XML 文件中删除所有注释的 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10436695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com