相关疑难解决方法(0)

SAX和DOM有什么区别?

我阅读了一些关于XML解析器的文章,并且遇到了SAXDOM.

SAX是基于事件的,DOM是树模型 - 我不理解这些概念之间的差异.

根据我的理解,基于事件意味着某种事件发生在节点上.就像当单击特定节点时,它将给出所有子节点,而不是同时加载所有节点.但是在DOM解析的情况下,它将加载所有节点并创建树模型.

我的理解是否正确?

请纠正我如果我错了或以更简单的方式向我解释基于事件和树模型.

saxparser xml-parsing domparser

237
推荐指数
7
解决办法
22万
查看次数

lxml.etree.XMLSyntaxError:htmlParseEntityRef:expecting';'

我试图找出python lxml api,但遇到了一个特殊的问题.我安装了以下库版本:

  • libxml2:2.7.8
  • libxslt:1.1.26

当我运行以下代码时:

html = open('file.html', 'r')
context = etree.iterparse(StringIO(html), events=("start", "end"), html='true')
for event, element in context:
    #do stuff
Run Code Online (Sandbox Code Playgroud)

编辑:

事实证明这是一个解析错误.我将html移动到一个文件(如下所示)

<html>
    <head></head>
    <body>
        <table>
            <tr>
                <td>image</td>
                <a href="relative.phtml?with=querystring&blah=blah">blah\n(blah)</a></td>
                <td>   35   </td>
                <td>   28   </td>
                <td><b>-7</b></td>
                <td>   
                23,000    </td>
                <td>   373,000   </td>
                <td>   644,000   </td>
                <td>+72.65%</td>
            </tr>
            <tr>
                <td>image</td>
                <td><a href="relative.phtml?with=querystring&blah=blah">blah\n(blah)</a></td>
                <td>   35   </td>
                <td>   28   </td>
                <td><b>-7</b></td>
                <td>   
                23,000    </td>
                <td>   373,000   </td>
                <td>   644,000   </td>
                <td>+72.65%</td>
            </tr>
        </table>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我现在收到这个错误:

对于事件,元素在上下文中:

在lxml.etree.iterparse中输入"iterparse.pxi",第515行.下一个 …

python lxml

3
推荐指数
1
解决办法
7793
查看次数

标签 统计

domparser ×1

lxml ×1

python ×1

saxparser ×1

xml-parsing ×1