擅长:python、mysql、java
<p>我不太确定libxml2绑定的当前状态。甚至libxml2站点也建议改用<a href="http://lxml.de/" rel="nofollow">lxml</a>。在lxml中,解析这棵树并忽略<code>&</code>是很好和干净的:</p>
<pre><code>from cStringIO import StringIO
from lxml import etree
DOC = "<a>some broken & xml</a>"
reader = etree.XMLParser(recover=True)
tree = etree.parse(StringIO(DOC), reader)
print etree.tostring(tree.getroot())
</code></pre>
<p>lxml文档中的<a href="http://lxml.de/parsing.html" rel="nofollow">parsers page</a>详细介绍了如何设置解析器和遍历内容。在</p>
<p>编辑:</p>
<p>如果要增量解析文档,也可以使用XMLparser类,因为它是<code>_FeedParser</code>的子类:</p>
^{pr2}$