在Python xml.dom中读取字符串而不进行解析

发布于 2024-12-06 07:33:38 字数 214 浏览 0 评论 0原文

您可能知道,如果 xml 代码有任何问题,Python 的 xml.dom readString() 会引发异常。

我目前正在编写一个简单的 xmpp 聊天服务器,您可能也知道,第一个客户端请求消息之一不会关闭stream:stream 标记,直到它没有得到答复。

有没有办法使用 pythons xml.dom 而不“解析” xmlcode 或者我应该编写自己的 xml 解析器?

As you probably know, Pythons xml.dom readString() throws an exception, if there is anything wrong with the xml code.

I am currently writing a simple xmpp chat server, and as you probably also know, one of the first client request message does not close the stream:stream tag, until it does not get a reply.

Is there any way to use pythons xml.dom without "parsing" the xmlcode or should I write my own xml parser?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

骑趴 2024-12-13 07:33:38

DOM 解析器始终需要读取整个 XML 文件。您需要一个 SAX 解析器

DOM parsers always need to read the entire XML file. You want a SAX parser.

铃予 2024-12-13 07:33:38

您不使用像 xmpppy 这样的已经建立的 XMPP 库有什么原因吗? (另请参阅

Any reason you're not using an already established XMPP library like xmpppy? (See also)

爱你是孤单的心事 2024-12-13 07:33:38

可能为您提供最佳体验的解析器是 xml.parsers.expat。在 StartElementHandler 中创建一个 DOM 元素,并将其作为子元素添加到当前元素,然后将当前元素设置为新元素。在 EndElementHandler 中,将当前元素弹出到该元素的父元素。如果父级为 null,则您有一个节。仔细测试命名空间;第一次你可能会把属性搞错。

The parser that is likely to give you the best experience is xml.parsers.expat. In your StartElementHandler create a DOM element, and add it to the current element as a child, then set the current element to the new element. In your EndElementHandler, pop the current element to that element's parent. If the parent was null, you have a stanza. Do careful testing of namespaces; you're liable to get the attributes wrong the first time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文