Python和XPath

2024-09-30 18:35:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试解析this XML

我想得到所有机制的列表,所以我尝试使用XPATH(如果有更简单的方法,请建议使用)来获取这些机制。。。在

这是我的代码:

parseMessage = libxml2.parseDoc(doc)
xpathcon = parseMessage.xpathNewContext()

xpathcon.xpathRegisterNs('urn','http://etherx.jabber.org/streams')
nodes = xpathcon.xpathEval("//urn:text()")
print nodes

我发现了错误。。。在

^{pr2}$

我知道我的代码并没有删除所有的机制,但首先我想绕过手头的问题。无论如何要把它变成可以解析的正确的XML?我需要添加新的页眉还是删除页眉或执行其他操作?在


Tags: 方法代码列表xmlthisxpath建议机制
2条回答

使用existing XMPP libraries中的一个。在

下一步:如果XMPP把它当作一个文档来考虑,你不会成功的。你可以在它周围闲逛几天,让自己相信你在做什么,然后你会意识到没有办法告诉服务器什么时候发送完信息,所以没有办法知道什么时候该调用你的文档。在

相反,请使用基于流的解析器。SleekXMPP使用xml.etree.cElementTree.iterparse在套接字周围加上一个包装,使其闻起来像文件。可能还有其他方法,比如直接使用xml.parsers.expat。在

看起来您正在尝试构建一个XMPP库。为什么不使用an existing library,例如SleekXMPP?在

如果您真的需要构建自己的XMPP库,则需要使用a streaming parser,例如Expat。在

相关问题 更多 >