2014-10-22 250 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"); 
    } 
} 

參考