Javascript AngularJS获取XML子节点
我尝试使用AngularJS解析XML,为此,我在这里使用: 这对于使用以下格式的XML非常有用:Javascript AngularJS获取XML子节点,javascript,xml,angularjs,Javascript,Xml,Angularjs,我尝试使用AngularJS解析XML,为此,我在这里使用: 这对于使用以下格式的XML非常有用: <parent> <child id="1" name="something" attribute="something-else"/> </parent> <parent> <child> <grandchild1>Lorem</grandchild1> <grandchild2&
<parent>
<child id="1" name="something" attribute="something-else"/>
</parent>
<parent>
<child>
<grandchild1>Lorem</grandchild1>
<grandchild2>Ipsum</grandchild2>
<grandchild3>Dolor</grandchild3>
</child>
<child>
<grandchild1>Lorem</grandchild1>
<grandchild2>Ipsum</grandchild2>
<grandchild3>Dolor</grandchild3>
</child>
</parent>
但是,我尝试解析的XML采用以下格式:
<parent>
<child id="1" name="something" attribute="something-else"/>
</parent>
<parent>
<child>
<grandchild1>Lorem</grandchild1>
<grandchild2>Ipsum</grandchild2>
<grandchild3>Dolor</grandchild3>
</child>
<child>
<grandchild1>Lorem</grandchild1>
<grandchild2>Ipsum</grandchild2>
<grandchild3>Dolor</grandchild3>
</child>
</parent>
洛勒姆
乱数假文
多洛
洛勒姆
乱数假文
多洛
我的问题是,如何循环每个子节点以获得其各自的孙子节点的属性
谢谢。使用迭代器函数:
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);
}
连同解析器函数:
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);
}
连同查询功能:
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");
}
}
参考资料