両方とも機能しています...では、なぜ必要なのparseXML
ですか?
var x='<a>\
<item k="1" p1="aaa" />\
<item k="2" p1="bbb" />\
</a>';
alert($($.parseXML(x)).find("item[k='1']").attr('p1')); //aaa
alert($(x).find("item[k='1']").attr('p1')); //aaa
両方とも機能しています...では、なぜ必要なのparseXML
ですか?
var x='<a>\
<item k="1" p1="aaa" />\
<item k="2" p1="bbb" />\
</a>';
alert($($.parseXML(x)).find("item[k='1']").attr('p1')); //aaa
alert($(x).find("item[k='1']").attr('p1')); //aaa
この$.parseXML
関数は、DOMParser
または IE で同様のものを使用します。
したがって、実際の xml オブジェクトが返されるため、たとえば xml バージョン ( $.parseXML(xml).xmlVersion
) などのものが含まれます。
次のような xml がある場合:
<?xml version="1.0" encoding="UTF-8" ?>
<ok>
<yes>true</yes>
</ok>
2番目の例を使用すると、これが返されます:
[
<!--?xml version="1.0" encoding="UTF-8" ?-->
,
<ok>…</ok>
]
したがって、今実行しようとして$(xml).find("ok")
も、ok が親タグであるため何も見つかりません。実行する$(xml).first()
とコメントが表示されますが、それは良いことではないと思います。
ただし、最初の例を使用している場合は、ドキュメントを親タグとして取得します。
[#document]
ok
したがって、次のようなタグを取得できます$($($.parseXML(xml)).find("ok")
。問題なく、最初のノードとしてコメントはありません。