我正在使用我找到的这个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