AJAX/Jquery XML 解析

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/10223865/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 08:58:12  来源:igfitidea点击:

AJAX / Jquery XML parse

xmlajaxjqueryxml-parsing

提问by StealthRT

I try parsing the following type of XML (data from getMembers.php):

我尝试解析以下类型的 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>

And I use the code below to parse it:

我使用下面的代码来解析它:

<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>

No error but I get both names at the same time.

没有错误,但我同时得到两个名字。

Like:

喜欢:

Bill GatesBob Barker <--first loop>

比尔盖茨Bob Barker <--first loop>

Instead of

代替

Bill Gates <--first loop>

Bob Barker <--second loop>

比尔盖茨 <--first loop>

Bob Barker <--second loop>

Any help would be great!

任何帮助都会很棒!

回答by fmgp

I think you iterate over members, not names:

我认为您迭代成员,而不是名称:

success: function(xml) {
                $(xml).find('members').each(function(){
                    $(this).find("name").each(function(){
                        var name = $(this).text();
                        alert(name);
                    });
                });
            }

Or maybe your XML should looks like:

或者,您的 XML 应该如下所示:

<members>
   <id>3422345</id>
   <name>Bill Gates</name>
</members>
<members>
   <id>232311</id>
   <name>Bob Barker</name>
</members>

回答by Victor Cardenas

This way show names:

这种方式显示名称:

<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);
            });
        }
    });
});

回答by user2780947

Just wondering if you successfully parsed that XML data.

只是想知道您是否成功解析了该 XML 数据。

The valid XML format is below:

有效的 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>