检索单个对象,而不是列表/数组



我正在使用我找到的这个xml文件:https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ms762271(v=vs.85(

我正在努力找回作者的价值。所以有了这个代码:

var val = xpath.select('/catalog/book[1]/author', root);

我希望它能回来:Gambardella, Matthew。但相反,它编写了一个包含NodeName、tagName、docType、length、firsChild等的数组。如果我这样做:

val.forEach(function(n) {
console.log("Each n: "+n);  
}); 

我得到:Each n: <author>Gambardella, Matthew</author>

所以我的问题是,我如何获得属性值?我也试过做val.getAttribue()

这是整个代码:

var fs = require('fs');
var xmlDom = require('xmldom');
var xpath = require('xpath');
fs.readFile('books.xml', 'utf8', function (err, data) {
if (err) {
return console.log(err);
} 

var parser = new xmlDom.DOMParser(); 
var serializer = new xmlDom.XMLSerializer();
var root = parser.parseFromString(data, 'text/xml'); 
var val = xpath.select('/catalog/book[1]/author', root);

val.forEach(function(n) {
console.log("Each n: "+n);  
});  

});

尝试更改

var val = xpath.select('/catalog/book[1]/author', root);

var val = xpath.select('/catalog/book[1]/author/text(), root);

当时:

val.forEach(function(n) {
console.log("Each n: "+n);  
}); 

应输出:

Each n: Gambardella, Matthew

最新更新