在 Python xml.dom 中读取字符串而不解析
Posted
技术标签:
【中文标题】在 Python xml.dom 中读取字符串而不解析【英文标题】:Read string without parsing in Python xml.dom 【发布时间】:2011-09-25 19:24:00 【问题描述】:您可能知道,如果 xml 代码有任何问题,Python 的 xml.dom readString() 会抛出异常。
我目前正在编写一个简单的 xmpp 聊天服务器,您可能也知道,第一个客户端请求消息中的一个不会关闭 stream:stream 标记,直到它没有得到回复。
有什么方法可以在不“解析”xmlcode 的情况下使用pythons xml.dom 还是我应该编写自己的xml 解析器?
【问题讨论】:
【参考方案1】:DOM 解析器总是需要读取整个 XML 文件。你想要一个SAX parser。
【讨论】:
【参考方案2】:您不使用像xmpppy 这样的已经建立的XMPP 库有什么原因吗? (See also)
【讨论】:
为什么苹果要编写mac os而不是windows?我只是想获得练习并获得乐趣......【参考方案3】:可能给你最好体验的解析器是xml.parsers.expat。在您的 StartElementHandler
创建一个 DOM 元素,并将其作为子元素添加到当前元素,然后将当前元素设置为新元素。在您的EndElementHandler
中,将当前元素弹出到该元素的父元素。如果父级是null
,你有一个节。仔细测试命名空间;你很容易在第一次得到错误的属性。
【讨论】:
以上是关于在 Python xml.dom 中读取字符串而不解析的主要内容,如果未能解决你的问题,请参考以下文章
Selenium2+Python3.6实战:读取xml文件,获得标签信息ExpatError: not well-formed (invalid token)