2014-10-22 124 views
1

我试图用AngularJS解析XML和我今天在这里使用:https://github.com/johngeorgewright/angular-xmlAngularJS获取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

使用迭代器功能:

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"); 
    } 
} 

参考