在 javascript 中遍历 XMPP iq 节
Posted
技术标签:
【中文标题】在 javascript 中遍历 XMPP iq 节【英文标题】:traverse XMPP iq stanza in javascript 【发布时间】:2015-02-05 13:32:18 【问题描述】:我设法从韵律 XMPP 服务器获得响应。结果,我得到了我的名册查询的 iq 节。
<iq xmlns="jabber:client" id="1:sendIQ" type="result" to="server@localhost/c38649b9-b47f-46b9-bcbc-7f0f683408f1">
<query xmlns="jabber:iq:roster" ver="41">
<item jid="sam@internal" subscription="none"/>
<item jid="test@example.com" subscription="none"/>
<item jid="blade@internal" subscription="none"/>
</query>
</iq>
我想从项目标签中获取 JID 的值。例如,来自项目标签的 sam@internal。
到目前为止,我使用下面的 javascript 代码成功地到达了项目标签。但我想遍历到“jid”。
$(iq).find("query").children().each(function ()
alert(this.nodeName + ' = ' + $(this).text());
);
这里是 jsfiddle 上的运行代码:http://jsfiddle.net/ritter17/ec272rux/
任何帮助将不胜感激!提前致谢。
【问题讨论】:
你确定 jQuery 代码有效吗?我可以看出它有两个问题。$(iq)
应该是 $('iq')
,并且在该节中找不到“列表”元素。
@Andy 我确信它正在工作,因为我更改了拼写错误(查询而不是列表)。获取这些值。但我想从项目节点获取 JID 的值。项目 = 项目 = 项目 =
【参考方案1】:
这是尝试失败后的答案。
x=iq.getElementsByTagName('item');
for (i=0;i<x.length;i++)
$("#msgs").prepend("<p><strong>" + "server" + "</strong>: " + x[i].getAttribute('jid') + "</p>");
console.log(x[i].getAttribute('jid'));
【讨论】:
以上是关于在 javascript 中遍历 XMPP iq 节的主要内容,如果未能解决你的问题,请参考以下文章