次のタイプのXML(getMembers.phpからのデータ)を解析してみます。
<?xml version="1.0" encoding="ISO-8859-1"?>
<members>
<id>3422345</id>
<name>Bill Gates</name>
<id>232311</id>
<name>Bob Barker</name>
</members>
そして、以下のコードを使用して解析します。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "GET",
url: "getMembers.php",
cache: false,
dataType: "xml",
success: function(xml) {
$(xml).find('members').each(function(){
var name = $(this).find("name").text()
alert(name);
});
}
});
});
</script>
エラーはありませんが、両方の名前を同時に取得します。
お気に入り:
ビル・ゲイツボブ・バーカー<-first loop>
の代わりに
ビル・ゲイツ<-first loop>
ボブ・バーカー<-second loop>
どんな助けも素晴らしいでしょう!
名前ではなくメンバーを反復処理すると思います:
success: function(xml) {
$(xml).find('members').each(function(){
$(this).find("name").each(function(){
var name = $(this).text();
alert(name);
});
});
}
または、XMLは次のようになります。
<members>
<id>3422345</id>
<name>Bill Gates</name>
</members>
<members>
<id>232311</id>
<name>Bob Barker</name>
</members>
この方法は名前を表示します:
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "GET",
url: "getMembers.php",
cache: false,
dataType: "xml",
success: function(xml) {
$(xml).find('name').each(function(){
var name = $(this).text();
alert(name);
});
}
});
});
そのXMLデータを正常に解析したかどうか疑問に思います。
有効なXML形式は次のとおりです。
<?xml version="1.0" encoding="ISO-8859-1"?>
<members>
<member>
<id>3422345</id>
<name>Bill Gates</name>
</member>
<member>
<id>232311</id>
<name>Bob Barker</name>
</member>
</members>