使用jquery迭代xml



我是Jquery的新手,我有以下xml响应:

<root>
<case>
<ckey>100</ckey>
<case-description>something</case-description>
<issue>
<ikey>issue-one</ikey>
<ikey-description>issue-two</ikey-description>
</issue>
</case>
<case>
<ckey>101</ckey>
<case-description>something</case-description>
<issue>
<ikey>issue-one</ikey>
<ikey-description>issue-two</ikey-description>
</issue>
</case>
</root>

上面xml的总结是,每个<case>下面都有<issue>节点。我必须迭代每个<case>,然后在它下面发布<issue>,并将它们添加到一个数组中,该数组可用于填充案例(<case>(和在jquery数据表中在其下发出(<issue>(。

我尝试了以下代码,但没有得到所需的格式。有人能帮我吗?

$(".dataTables_scrollBody").find(".details-control").on("click", function() {
var $CaseLkupTables = $(soapGetResultslist.responseXml).find("case");
$CaseLkupTables.each(function(index, event) {
var $event = $(event),
addData = [];
$event.children().each(function(i, child) {

addData.push($(child).text());
var issueNodes = XmlUtil.selectNodes(child, "//issue");
for (var i = 0; i < issueNodes.length; i++) {
var idvalue = XmlUtil.xmlToString(XmlUtil.selectSingleNode(issueNodes[i], "//ISSUEID"))
}
});
table.data(addData);
});
var xyz = table.row($(this).parents('tr')).data();
alert("vvv " + xyz[0]);

var tr = $(this).closest('tr');
var row = table.row(tr);
alert("row data " + row.data()[0]);

$.each(issueNodes, function(index, value) {
console.log(value)
});

console.log(row.data());
$tds = $row.find("td:nth-child(2)");

if (row.child.isShown()) {
// This row is already open - close it
row.child.hide();
tr.removeClass('shown');
} else {
// Open this row
var td = $(this).parent('td');
//alert("Child data "+  table.row( td ).data());
//  row.child(format(issueNodes) ).show();
//  expandhideContact( string );
row.child(issueNodes).show();
tr.addClass('shown');
}
});

使用上面的代码,我只能获得案例节点的信息,但无法获得每个案例节点下的问题节点信息。

尝试此实现

var x ="<root><case><ckey>100</ckey><case-description>something</case-description><issue><ikey>issue-one</ikey><ikey-description>issue-two</ikey-description></issue></case><case><ckey>101</ckey><case-description>something</case-description><issue><ikey>issue-one</ikey><ikey-description>issue-two</ikey-description></issue></case></root>";
$($.parseXML(x)).find('case').each(function(index){
var ckey = $(this).find('ckey').text();
var description = $(this).find('case-description').text();
var issueikey = $(this).find('issue').find('ikey').text(); var issueikeyDescription = $(this).find('issue').find('ikey-description').text();
console.log(ckey,description,issueikey,issueikeyDescription);
});

最新更新