1

私はなんとかSendIQを送信し、openfireサーバーから応答を取得しました。

今、私は自分の目的のために応答をトラバースすることができません:

「list」、「other1」などのノードを検索する「find」メソッドがありますが、「list」に含まれるすべてのタイプのノードをトラバースする必要があります。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> 

「リスト」のすべてのノードタイプが必要です。私はこれまでに得ました:

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

しかし、これにより、「other1」や「othern」などのさまざまなタイプのノードからの「asdf」のようなテキストが得られます。ノードのタイプ(つまり、「set」、「other1」)を取得するにはどうすればよいですか?私も)を試し$(this).val()ましたが、どちらも機能しません。

助けてください....

ありがとう!

4

1 に答える 1

2

nodeNameループ内の各要素のを取得できます。

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

配列/オブジェクトの各インデックスについて、上記のようにループ内でこれらの変数にアクセスできます。

これがデモです:http://jsfiddle.net/7AKL6/2/

ドキュメント.each()http ://api.jquery.com/each/

ドキュメントNode.nodeNamehttps ://developer.mozilla.org/en/Document_Object_Model_(DOM)/Node.nodeName

また、XMLの例にはエラーが含まれていることに注意してください。

<other1> asdf </other>

する必要があります:

<other1> asdf </other1>

正しく閉じるために。

于 2012-04-12T21:23:33.807 に答える