使用xpath循环遍历xml中的嵌套元素



我有以下xml。我想为每个学生循环学习课程。如何使用nodejs的xpath-js模块来实现这一点?

     <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>

试试这个:

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.length;i++){
        console.log(node.firstChild.firstChild.nodeValue,courses[i].firstChild.nodeValue)
    }
})

最新更新