0

我有个问题。我正在对 XML 代码进行一些更改,但有时它会重叠,例如:

<xref><mytag></xref></mytag>

我正在考虑一个将解析 XML 文件并解决该问题的脚本,例如:

<xref><mytag></mytag></xref><mytag></mytag>

任何人都可以帮助我吗?也许一些正则表达式?或者一些可以使用的工具、python 脚本等。我有很多文件要修复,我将不胜感激每一个建议!

4

3 回答 3

4

使用lxmlrecover该库可以通过设置标志来尝试解析无效的 XML 并清理它:

>>> from lxml import etree
>>> from StringIO import StringIO
>>> ex = '<xref><mytag>there is some text</xref></mytag>'
>>> parser = etree.XMLParser(recover=True)
>>> tree = etree.parse(StringIO(ex), parser)
>>> etree.tostring(tree.getroot())
'<xref><mytag>there is some text</mytag></xref>'
于 2012-05-28T13:56:39.900 回答
0

这是我在 Python 中处理 xml 的最佳工具:lxml

但是,您的问题恐怕无法用 lxml 解决,因为该 xml 无效。我鼓励您使用一些 xml 工具或库 (lxml) 来生成有效的 xml 并避免此类问题。

于 2012-05-28T13:47:00.807 回答
0

至于 C++,您可以使用 POCO 库 XML(文档)功能来编辑您的 XML 文件:Poco::XML::Document

于 2012-05-28T13:54:12.553 回答