2015-06-27 47 views
1

我有以下xml.I想循環遍歷每個學生的課程。如何使用nodejs的xpath js模塊完成此操作?使用xpath在xml中循環嵌套元素

 <students> 
     <student> 
      <name>George</name> 
      <courses> 
       <course> 
        <coursename>Philosophy</coursename> 
       </course> 
       <course> 
        <coursename>Literature</coursename> 
       </course> 
      </courses> 
     </student> 
     <student> 
      <name>John</name> 
      <courses> 
       <course> 
        <coursename>History</coursename> 
       </course> 
       <course> 
        <coursename>Maths</coursename> 
       </course> 
      </courses> 
     </student> 
    </students> 

回答

1

試試這個:

var xpath = require('xpath'), 
    dom = require('xmldom').DOMParser 
    xml= ".. xml string .." 

var doc = new dom().parseFromString(xml) 
var nodes = xpath.select("//student", doc) 
nodes.forEach(function(node){ 
    var courses = node.getElementsByTagName('coursename') 
    for(var i=0;i< courses.leangth;i++){ 
     console.log(node.firstChild.firstChild.nodeValue,courses[i].firstChild.nodeValue) 
    } 
})