Ответ 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());
Если это не правильный способ, то как мне это сделать?
Я не думаю, что это лучший способ сохранить строку xml на странице. Однако, чтобы заставить ваш код работать, вам нужно преобразовать строку xml в "простую" строку, например, сменив каждый символ "<" на escape-последовательность "<":
$('#clientSearchResult > tbody:last').append(respRow.replace(/</g,'<'));
Когда вы читаете строку назад, вы можете изменить escape-последовательность "<" назад на символ "<":
var searchData = $('#clientSearchResult > tbody:last').text().trim().replace(/</g,'<');
Это рабочий пример: http://jsfiddle.net/RX6Mm/