【发布时间】:2011-09-07 17:17:38
【问题描述】:
我正在尝试使用 jQuery 解析 XMLRPC 响应以创建一个包含结构数组内容的表。响应如下所示:
<?xml version="1.0"?>
<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></param></params></methodResponse>
然后我在我的回调函数中解析响应。第一个罚款很好,可以找到响应中的所有结构元素。第二次查找尝试查找名称为 time 的成员的值,但只是再次返回 struct 元素。 “为我查找名为 X 的成员的值元素的文本?”的正确选择器是什么?
function loadStatusDone(data) {
if(!data) {
return;
}
//first, must clean the content viewer
$("table#tableStatus tbody").children().remove();
$(data).find('struct').each(function(){
var ts = $(this).find("member name:contains(time) :parent value").text();
var level = "level";
var thread = "thread";
var message = "some message";
var html = "<tr>" +
"<td>" + ts + "</td>" +
"<td>" + level + "</td>" +
"<td>" + thread + "</td>" +
"<td>" + message + "</td>" +
"</tr>";
$("table#tableStatus tbody").append(html);
$("table").trigger("update");
});
}
【问题讨论】: