jquery解析从服务器返回的td中的XML
进行ajax调用以从服务器返回一些数据。返回的数据如下所示:jquery解析从服务器返回的td中的XML,jquery,xml,Jquery,Xml,进行ajax调用以从服务器返回一些数据。返回的数据如下所示: <table border=1> <tr> <td>Field Name</td> <td>Field Value</td> </tr> <tr> <td>SuccessFlag</td> <td>True</t
<table border=1>
<tr>
<td>Field Name</td>
<td>Field Value</td>
</tr>
<tr>
<td>SuccessFlag</td>
<td>True</td>
</tr>
<tr>
<td>ResponseMessage</td>
<td><?xml version="1.0" encoding="utf-16"?>
<License>
<CustomerID>Bob</CustomerID>
<License>XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX</License>
<Log>Created by lt@email.com on December 6, 2012, 1:09 pm Cancelled by b@email.com on December 6, 2012, 1:09 pm</Log>
<ExpirationDate>2012-12-06</ExpirationDate>
</License>
</td>
</tr>
</table>
字段名
字段值
成功旗
真的
响应消息
上下快速移动
XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX
创建人lt@email.com2012年12月6日下午1:09被取消b@email.com2012年12月6日下午1:09
2012-12-06
我可以这样输出数据:
//ajax call stuff
success: function(data) {
var answer = $(data).find("td:eq(3)").text();
var message = $(data).find("td:eq(5)").text();
if (answer==="True") {
$('input[type="text"], input[type="password"]').val("");
$('#resultGenerate').show().html('<ul><li>' + message + '</li></ul>');
} else {
$('.processing').hide();
$('input[type="text"], input[type="password"]').val("");
$('#resultGenerate').show().html('<ul><li>' + answer + '</li><li>' + message +
'</ul>');
}
}
//ajax调用工具
成功:功能(数据){
var-answer=$(数据).find(“td:eq(3)”).text();
var message=$(data.find(“td:eq(5)”).text();
如果(答案为“真”){
$('input[type=“text”],input[type=“password”]).val(“”);
$(“#resultGenerate”).show().html(“- ”+message+”
”);
}否则{
$('.processing').hide();
$('input[type=“text”],input[type=“password”]).val(“”);
$(“#resultGenerate”).show().html(“- ”+answer+”
- “+message+
“
”);
}
}
基本上,我只需转到表的第5个td并输出消息。我需要重新格式化为一个表或更完善的结构输出。我假设我将创建一个函数来解析每个标记和值对,然后运行该函数?需要一些帮助,谢谢你一如既往 一旦有了文本,只需调用parseXML,让jQuery将其转换为您可以使用的对象:
var answer = $(data).find("td:eq(3)").text();
var message = $(data).find("td:eq(5)").html();
var xmlDoc = $.parseXML( message );
var $xml = $( xmlDoc );
// Now loop through the markup
$xml.each(function(){
// Do something with the license
alert($(this).text());
});
获得文本后,只需调用parseXML,让jQuery将其转换为您可以使用的对象:
var answer = $(data).find("td:eq(3)").text();
var message = $(data).find("td:eq(5)").html();
var xmlDoc = $.parseXML( message );
var $xml = $( xmlDoc );
// Now loop through the markup
$xml.each(function(){
// Do something with the license
alert($(this).text());
});
谢谢你的时间!因此,我没有将上述内容放在正确的位置,在我的ajax调用中,这会发生什么?我已经将您的代码添加到我的帖子中,以便您可以查看上下文。此建议将XML解析放在获取消息文本之后。我不确定您以后在代码中希望在何处或如何使用消息数据,但这应该会让您朝着正确的方向开始。我收到了错误“Uncaught SyntaxError:Unexpected identifier”嗯,我确定只使用.text()获取文本是个问题,因为这会去除所有标记。我编辑了上面的示例以使用.html()获取消息数据。你能试试看会发生什么吗?这一行是错误(未捕获的语法错误:意外标识符):if(答案==“True”){谢谢您的时间!所以我没有把上面的内容放在正确的位置,在我的ajax调用中会放在哪里?我已经将您的代码添加到我的帖子中,这样您就可以看到上下文。这个建议在获取消息文本后立即对XML进行解析。我不确定您希望在代码中稍后使用消息数据的位置或方式,但这应该会让您感到满意从正确的方向开始。我得到这个错误“Uncaught SyntaxError:Unexpected identifier”嗯,我确信用.text()只获取文本是个问题,因为这会去除所有标记。我编辑了上面的示例以使用.html()获取消息数据。你能试试看会发生什么吗?这一行就是错误(未捕获的SyntaxError:意外标识符):如果(答案=“True”){