2012-04-12 5 views
1

私はIQを送信し、openfireサーバーから応答を取得できました。javascriptでxmpp iq stanzasをトラバース

は今、私は私の目的のために応答を通過することはできません。

あり、「リスト」、「other1」などのノードを検索するための「検索」方法があるが、私は、ノードのすべてのタイプを横断する必要があります"リスト"に含まれています。 IQレスポンスは次のようになります。

<iq type="get" id="sid_225"> 
    <list xmlns="urn:xmpp:archive" end="2012-04-30T22:00:00Z" start="2012-03-31T22:00:00Z"> 
    <set xmlns="http://jabber.org/protocol/rsm"> 
     <max>30</max> 
    </set> 
    <other1> asdf </other1> 
    <othern> aasdf </othern> 
    </list> 
</iq> 

"list"のすべてのノードタイプが必要です。私は今のところ得た:

$(iq).find("list").children().each(function() { 
    alert($(this).text()); 
} 

しかし、これは私に「other1」と「othern」のような異なるタイプのノードから「ASDF」のようなテキストを提供します。ノードのタイプ(「set」、「other1」)を取得するにはどうすればよいですか?私も$(this).val()を試しました)しかし、どちらもうまくいきません。

助けてください....

ありがとう!

答えて

2

あなたは、ループ内の各要素のnodeNameを取得することができます:

$(iq).find("list").children().each(function() { 
    alert(this.nodeName + ' = ' + $(this).text()); 
}); 

あなたは、配列/オブジェクト内の各インデックスのために上記のようなループ内でこれらの変数にアクセスすることができます。ここで

はデモです:.each()ためhttp://jsfiddle.net/7AKL6/2/

ドキュメント:Node.nodeNameためhttp://api.jquery.com/each/

ドキュメント:

<other1> asdf </other> 
https://developer.mozilla.org/en/Document_Object_Model_(DOM)/Node.nodeName

はまた、あなたのXMLの例は、その中にエラーがあることに注意してください

は次のとおりです。

<other1> asdf </other1> 

これを正しく閉じるには

+0

お返事ありがとうございました!私はjsとhtml5を初めて使っています。jsとhtmlコードを構造化するための良いMVCフレームワークを教えてください。現在、私はxmpp接続を持っており、jsファイルに$(document).ready()関数が含まれている場合、この接続をさまざまなjsファイルで使用できます。それとも、モバイルアプリで十分だと思いますか? – user1054134

関連する問題