我有问题。我正在对XML代码进行一些更改,但有时它会重叠,如:
<xref><mytag></xref></mytag>
我正在考虑一个解析XML文件并修复该问题的脚本,如:
<xref><mytag></mytag></xref><mytag></mytag>
任何人都可以帮助我吗?也许有些正规表达?或者一些工具准备好使用,python脚本等我有很多文件需要修复,我会很感激你的每一个建议!s
答案 0 :(得分:4)
使用lxml
;通过设置recover
标志,库可以尝试解析无效的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>'
答案 1 :(得分:0)
这是我在Python中处理xml的最佳工具:lxml
但问题是,我担心lxml无法解决,因为xml无效。我鼓励您使用一些xml工具或库(lxml)来生成有效的xmls并避免此类问题。
答案 2 :(得分:0)
对于C ++,您可以使用POCO库XML(文档)功能来编辑XML文件:Poco::XML::Document