如何解析从服务器返回的表中的XML

时间:2012-12-07 03:07:24

标签: jquery xml-parsing

从ajax POST表单返回数据是一个表。表在一个单元格中有xml,我可以到达必要的单元格并在页面上显示为直接xml,所有标签都存在或只显示文本。我需要以某种方式格式化xml,目前我唯一的影响是它的直接xml并用css设置样式 - 这是不可取的。

success: function(data) {
    var answer = $(data).find("td:eq(3)").text();
    var message = $(data).find("td:eq(5)").html();
    var xmlDoc = $.parseXML( message );
    var $xml = $( xmlDoc );
if (answer==="True") {
    $xml.each(function() {
       $('#resultGenerate').show().append($(this).html());
});
} else {
    $('.processing').hide();
    $('input[type="text"], input[type="password"]').val("");
    $('#resultGenerate').show().html('<ul><li>' + answer + '</li><li>' + message +    
    '</ul>');
}
}

以上只是将其作为文本返回,如何解析xml以获取标记并将其附加到表中?我整天都在这,我真的需要一些帮助。我知道我需要为每个xml标签设置一个var,例如

var xmltagfoo = $(this).find('xmltagfoo').text();

然后像这样追加

$('#resultGenerate').append($('<td>' + xmltagfoo + '</td>'));

但我根本无法让这个工作。请帮忙。

1 个答案:

答案 0 :(得分:0)

最后让它工作,使用GET请求很容易,但是当从POST返回数据时,它有点棘手。这就是我做的方式

$.ajax({
type: $(form).attr('method'),
url: form.action,
data: dataString,
clearForm: true,
success: function(data) {
    var answer = $(data).find("td:eq(3)").text();
    var message = $(data).find("td:eq(5)").html();
    var $xml = $( message );

    if (answer==="True") {
        $xml.find('license').each(function(){
    var XXXCustomerID = $(this).find(XXXCustomerID').text();
            var XXLicense  = $(this).find('XXLicense').text();
            var Log  = $(this).find('Log').text();
            var ExpirationDate  = $(this).find('ExpirationDate').text();
    $("#resultGenerate").show().append($('<li><span class="ID">' + XXXCustomerID + '</span><span class="NTL">' + XXLicense + '</span><span class="Log">' + Log + '</span><span class="Exp">' + ExpirationDate + '</span></li>'));
            });
    } else {
            $('.processing').hide();
            $('input[type="text"], input[type="password"]').val("");
            }
        }
    });