我正在尝试使用AngularJS解析XML,为此我在此处使用它:https://github.com/johngeorgewright/angular-xml
这适用于具有以下格式的XML:
<parent>
<child id="1" name="something" attribute="something-else"/>
</parent>
但是,我尝试解析的XML采用以下格式:
<parent>
<child>
<grandchild1>Lorem</grandchild1>
<grandchild2>Ipsum</grandchild2>
<grandchild3>Dolor</grandchild3>
</child>
<child>
<grandchild1>Lorem</grandchild1>
<grandchild2>Ipsum</grandchild2>
<grandchild3>Dolor</grandchild3>
</child>
</parent>
我的问题是,如何遍历每个子节点以获取其各自的孙子节点的属性?
谢谢。
答案 0 :(得分:0)
使用迭代器函数:
function iterator(node)
{
var foo = node.nodeValue;
return foo;
}
以及解析器功能:
function parser(node);
{
/* Transform childNodes into an array of values */
var bar = Array.prototype.map.call(node.childNodes, iterator);
return bar;
}
以及查询功能:
function xmlQuery(doc, node)
{
/* Aggregate matching nodes */
var baz = doc.getElementsByTagName(node);
return Array.prototype.map.call(baz, parser);
}
和DOMParser:
function readXML(xmlfromajax)
{
/* get XML response as text */
var xmlString = xmlfromajax;
/* Parse XML and query */
with (new DOMParser)
{
var xmlDOM = parseFromString(xmlString, "text/xml");
console.log(xmlDOM.documentElement.nodeName);
return xmlQuery(xmlDOM, "child");
}
}
<强>参考强>