0

响应 XML

<Response>
<ClientDetail>
  <FirstName>a</<FirstName>
  <LastName>a</LastName>
  <Status>Off</Status>
  <City>a</City>
  <ZipCode>12346</ZipCode>
  ............
</ClientDetail>
<ClientDetail>
  <FirstName>b</<FirstName>
  <LastName>b</LastName>
  <Status>Off</Status>
  <City>b</City>
  <ZipCode>321546</ZipCode>
  ........
</ClientDetail>
</Response>

解析响应

$($.parseXML(response)).find("ClientDetail").each(function(){
            var respRow='<tr>'+
                '<td class="ClientName">'+$(this).find('LastName').text()+', '+ $(this).find('FirstName').text()+
            '</td><td class="ClientStatus">'+$(this).find('Status').text()+
            '</td><td class="DateOfBirth">'+$(this).find('BirthDate').text()+
            '</td><td class="searchData" style="display:none;">'+this+'</td>';
            $('#clientSearchResult > tbody:last').append(respRow);
        });

将 XML 设置为隐藏<td>

<td class="searchData" style="display:none;">'+this+'</td>'

回读

  var searchData = $(row).find('.searchData').data();
  alert($(searchData ).find('Status').text());

如果这不是正确的做法,那我该怎么做?

4

1 回答 1

0

我不认为这是在页面中存储 xml 字符串的最佳方式。但是,要使您的代码正常工作,您需要将 xml 字符串转换为“简单”字符串,例如使用转义序列 '<' 更改每个 '<' 字符:

$('#clientSearchResult > tbody:last').append(respRow.replace(/</g,'&lt;'));

当你读回字符串时,你可以将转义序列 '<' 改回字符 '<':

var searchData = $('#clientSearchResult > tbody:last').text().trim().replace(/&lt;/g,'<');

这是一个工作示例:http: //jsfiddle.net/RX6Mm/

于 2013-09-24T15:00:49.297 回答