XML和jQuery解析的问题
我正在提交一个表单,并通过jQueryAjax在一个表中返回数据。表中的一个td包含xml,我需要将其格式化。我可以让它显示在我的页面上,但它似乎只是文本,没有xml标记。我正在处理一些遗留代码,没有多少回旋余地 返回的HTMLXML和jQuery解析的问题,jquery,xml,xml-parsing,Jquery,Xml,Xml Parsing,我正在提交一个表单,并通过jQueryAjax在一个表中返回数据。表中的一个td包含xml,我需要将其格式化。我可以让它显示在我的页面上,但它似乎只是文本,没有xml标记。我正在处理一些遗留代码,没有多少回旋余地 返回的HTML <table border=1> <tr> <td>Field Name</td> <td>Field Value</td> </tr> <tr> &
<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>
字段名
字段值
成功旗
真的
响应消息
****
上下快速移动
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
粗体的一行是表中的第5个td,它总是包含我需要的xml。使用下面的代码,它只是将文本转储到div中,我需要根据它的xml标记对其进行格式化,我不确定我的解析是否有效
$("#ButtonID").live('click',function(){
$("#FormID").validate({
//are the errorContainer's helping here?
errorContainer: "#responseDiv",
errorLabelContainer: "#responseDiv tr",
wrapper: "td",
//are the errorContainer's helping here?
submitHandler: function(form) {
var dataString = $(form).serialize();
$.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 xmlDoc = $.parseXML( message );
var $xml = $( xmlDoc );
if (answer==="True") {
$xml.each(function(){
$('#resultGenerate').show().html($(this).text());
});
} else {
$('.processing').hide();
$('input[type="text"], input[type="password"]').val("");
$('#resultGenerate').show().html('<ul><li>' + answer + '</li><li>' + message + '</ul>');
}
}
});
return false;
}
});
});
$(“#ButtonID”).live('click',function(){
$(“#FormID”)。验证({
//集装箱在这里有用吗?
errorContainer:#responseDiv“,
errorLabelContainer:#responseDiv tr“,
包装:“td”,
//集装箱在这里有用吗?
submitHandler:函数(表单){
var dataString=$(form).serialize();
$.ajax({
类型:$(form).attr('method'),
url:form.action,
数据:dataString,
clearForm:是的,
成功:功能(数据){
var-answer=$(数据).find(“td:eq(3)”).text();
var message=$(data.find(“td:eq(5)”).html();
var xmlDoc=$.parseXML(消息);
var$xml=$(xmlDoc);
如果(答案为“真”){
$xml.each(函数(){
$('#resultGenerate').show().html($(this.text());
});
}否则{
$('.processing').hide();
$('input[type=“text”],input[type=“password”]).val(“”);
$(“#resultGenerate”).show().html(“- ”+answer+”
- “+message+”
”);
}
}
});
返回false;
}
});
});
最终实现了这一点,使用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("");
}
}
});
$.ajax({
类型:$(form).attr('method'),
url:form.action,
数据:dataString,
clearForm:是的,
成功:功能(数据){
var-answer=$(数据).find(“td:eq(3)”).text();
var message=$(data.find(“td:eq(5)”).html();
var$xml=$(消息);
如果(答案为“真”){
$xml.find('license')。每个(函数(){
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($(“”+XXXCustomerID+”+XXLicense+”+Log+”+ExpirationDate+” );
});
}否则{
$('.processing').hide();
$('input[type=“text”],input[type=“password”]).val(“”);
}
}
});
您希望得到什么样的输出?返回的文本用空格分隔标签。我可以让它输出到我想要的div,但它只是未格式化的文本。我需要弄清楚如何将返回的xml部分附加到div中,以便对其进行样式设置或至少添加结构