我有一个XML文件,结构如下:
<output>
<count>
</count>
<rows>
<row>
<element1></element1>
<element2></element2>
<element3></element3>
<element4></element4>
</row>
<row>
<element1></element1>
<element2></element2>
<element3></element3>
<element4></element4>
</row>
</rows>
</output>
我通过AJAX从PHP请求文件并将其(响应)加载到变量中:
var xml=JSON.parse(response);
接下来,我想循环遍历它以获取数据。我注意到当行节点的数量是> 1,我可以这样做:
var list=[];
xml.output.list.rows.row.forEach(function(item)
{
list.push(item.element1);
});
但是,当只有1个行节点时,此forEach不起作用。有人可以向我解释为什么和/或提供替代解决方案/方法来迭代这样的文件吗?
答案 0 :(得分:0)
现在用
检查子节点的数量var convertedNumber = NSNumber(value: numberToConvert)
允许我访问每个子节点的数据,而不管nodex的数量。
答案 1 :(得分:-1)
我建议您将其解析为doc,而不是将XML解析为JSON。以下是示例代码
var testXML = "<output><count></count><rows><row><element1>asd</element1></row><row><element1>zz</element1><element2>xx</element2></row></rows></output>";
var parser = new DOMParser();
var doc = parser.parseFromString(testXML, "text/xml");
var rows = doc.getElementsByTagName('row');
for(var i = 0; i < rows.length; i++) {
console.log(rows[0]);
};
在所选行内打印出2行。如果您需要额外的解释,请告诉我。