Python-XMPP - 迭代 IQ 节项目

Posted

技术标签:

【中文标题】Python-XMPP - 迭代 IQ 节项目【英文标题】:Python-XMPP - Iterate the IQ stanza items 【发布时间】:2013-02-01 21:02:55 【问题描述】:

我正在使用 python-xmpp 连接到 gtalk。我正在收到回复,我可以向特定用户/电子邮件发送和接收消息。我正在寻找一种迭代 IQ 项目的方法,以便我可以获得每个项目的 jidname 属性。 IQ 节的形式为:

<iq to="example@gmail.com/test" id="3" type="result">
<query xmlns="jabber:iq:roster">
<item jid="test2@example.com" subscription="both" name="ABCD"/>
<item jid="test2@example.com" subscription="both" name="EFGH"/>
.
.
</query>
</iq>

我还想在收到&lt;presence&gt; 节时更新用户。我猜我应该使用回调,就像我现在正在做的那样来处理消息的接收。

【问题讨论】:

【参考方案1】:

我意识到可以将节点解析为任何 xml。 这就是解决我的问题的方法:

query_node=iq_node.getQueryChildren()
for node in query_node:
    print node.getAttr("name")

iq_nodexmpp.protocol.Iq 对象,每个 node 都是 xmpp.simplexml.Node 对象

【讨论】:

以上是关于Python-XMPP - 迭代 IQ 节项目的主要内容,如果未能解决你的问题,请参考以下文章

迭代此数据并呈现节标题和项目的正确方法?

使用命名空间迭代 xml 中的元素

迭代器与生成器 (01)

python 基础篇 13 迭代器与生成器

在 javascript 中遍历 XMPP iq 节

Python 04--迭代器装饰器软件开发规范