Вы можете разделить
var ts = $(this).find("member name:contains(time) :parent value").text();
на:
var $mem = $(this).find('member name:contains(time)').parent(),
ts = $('value', $m).text();
, который выберет узел name
с "time"
в качестве текста, затем получит его родителя (который являетсясодержащий узел участника).Затем используйте узел-член в качестве контекста, где получить узел value
и вернуть его текст.Я проверил это на вашем XML, и это, кажется, работает для меня.
Мой тестовый код
//dirty version of your XML
var $xml = '<methodResponse><params><param><value><array><data><value><struct><member><name>time</name><value>1315415195</value></member><member><name>level</name><value>DEBUG</value></member><member><name>thread</name><value>0x805e558</value></member><member><name>message</name><value>glib_syslog_get_log_messages</value></member></struct></value><value><struct><member><name>time</name><value>1315415160</value></member><member><name>level</name><value>DEBUG</value></member><member><name>thread</name><value>backup-Backups</value></member><member><name>message</name><value>Sleeping 5 minutes</value></member></struct></value></data></array></value></params></methodResponse>';
$xml.find('struct').each(function(){
var $m = $(this).find('member name:contains(time)').parent(),
ts = $('value', $m).text();
console.log(ts);
});