我正在尝试找到一个XML解析器,它允许我控制构建文档树并自己修复不匹配的标记。例如,我希望能够在我的代码中修复以下内容
<item>
<name>The name
<value>A value</value>
</item>
lxml允许我使用XMLParser的目标参数来控制构建树,但是它保留了打开标记的内部跟踪,我无法手动关闭它,因此它会在无效的XML上引发错误。要自动修复XML,我可以使用recover参数,但无法定义如何修复问题。这是一个问题,因为它经常做出错误的决定。
我尝试使用内置库(例如expat,ElementTree和sax)时遇到了类似的问题。我知道我试图解析的不是技术上的XML,但我希望能够以编程方式将其转换为有效的XML,而无需自己编写全新的解析器。