Arrays jQuery/AJAX多维数组

Arrays jQuery/AJAX多维数组,arrays,jquery,Arrays,Jquery,我试图解析一些在线存储的XML,然后通过PHP保存每个父节点及其子节点 作为测试,我创建了一些基本的XML,因为在线XML非常长。 我有一点XML,我正试图用它来实现基本功能 <result> <name>Person1</name> <date>2002-05-16</date> </result> <result> <name>Person2</nam

我试图解析一些在线存储的XML,然后通过PHP保存每个父节点及其子节点

作为测试,我创建了一些基本的XML,因为在线XML非常长。 我有一点XML,我正试图用它来实现基本功能

<result>
    <name>Person1</name>
    <date>2002-05-16</date>        
</result>
<result>
    <name>Person2</name>
    <date>2012-11-06</date>
</result>
我希望在以下html中分别显示每个结果:

<body>
    <p>XML Split</p>
    <div id="contents"></div>
        <div id="scroll"><input type="button" id="next" Value=" next in array "/>
        <input type="button" id="previous" Value=" previous in array "/></div>
        <div id="save"><input type="button" id="one" Value=" Save xml "/>
        <input type="button" id="all" Value=" Save all xml "/></div>
    <p>XML Split ended</p>
</body>
为此,我使用以下jQuery:

$(document).ready(function() {

$.ajax({
    type: "GET",
    url: "sampleContent.xml",
    dataType: "xml",
    data: ({'name': name, 'date': date}),
    success: function(xml) {
        parseXml(xml);
        append();
    }
});
});

var tmpName;
var tmpDate;
var results = [];

function parseXml(xml) {

$(xml).find('result').each(function() {

    tmpName = $(this).find('name').text();
    tmpDate = $(this).find('date').text();
    output = $(this).val();
    if (output != ''){
        obj = {};
        obj.name = name;
        obj.date = date;
        obj.output = output;
        results.push(obj);
    }
});
}

function append() {

$(results).each(function() {

    $('#contents').append('<div id="record"><div class="name">' +
            tmpName + '</div><div class="date">' +
            tmpDate + '</div></div>');
});
}
当我尝试创建一个数组时,我正在努力获取要显示的XML数据。我还需要输入数组中使用的一些变量,例如date from year-month day->day month year

我不确定这是如何或为什么出错的,因此,如果您对创建所需阵列有任何建议,我将不胜感激。我一直试图用它作为例子,但还是出了问题

欢迎提出任何建议

谢谢

Dan在append函数中,使用数组中的值,而不是使用tmpName和tmpDate

有几件事

结果似乎是在根级别,只查找查找 后代 全局变量将在循环中更改,并且相等 循环后的最后一个值 如果输出!={…永远不会为真,因为结果元素没有值 -


在append函数中,使用数组中的值,而不是使用tmpName和tmpdate谢谢你的快速回答,我已经按照你的建议进行了修改,但仍然没有得到任何输出。谢谢你的回答,也许现在有点困惑,这应该是我所做的全部重写吗?我已经尝试过在,并尝试用.done.的新函数替换我的parseXml函数和append函数。我仍然没有得到任何输出。至于'if output!={…永远不会是真的,因为结果元素没有值',我的尝试是错的。将名称和日期对象推入数组以获得结果?因此创建一个名为results的obj数组?@PartTimeNinja-val获取值,如中所示,并且没有值,因此val将始终返回一个空字符串。创建数组没有错,但您是我迭代创建数组,然后迭代使用数组,当您可以立即使用值时,实际上并不需要数组。您已将数据类型设置为xml,因此不需要$.parseXML,jQuery为您执行此操作,并且完成与实际成功相同,因此这应该可以替换您拥有的代码。请尝试控制台记录xml在第一行里面完成了吗?
$(results).each(function(i) {
    $('#contents').append('<div id="record"><div class="name">' +
            results[i].name + '</div><div class="date">' +
            results[i].date + '</div></div>');
});
$(document).ready(function () {
    $.ajax({
        type: "GET",
        url: "sampleContent.xml",
        dataType: "xml",
        data: {
            name : name,
            date : date
        }
    }).done(function(xml) {
        $('<div />').append(xml).find('result').each(function () {
            var record = $('<div />', {
                    id : 'record'
                }),
                name   = $('<div />', {
                    'class' : 'name',
                    html    : $(this).find('name').text()
                }),
                date   = $('<div />', {
                    'class' : 'date',
                    html    : $(this).find('date').text()
                });

            $('#contents').append( record.append(name, date) );
        });
    });
});