我在搜索中没有看到一种明显的方法来解析XML。我假设有一些相对简单的XML对象,可以将字符串或URL传递给它,但是我在规范中没有找到类似的东西。我需要一个外部库吗?如果需要,你们会推荐哪一个呢?我不需要xPath(虽然我不介意),只要能以明显的方式遍历树形结构(测试节点类型== ElementNode并循环遍历子节点)。
我建议使用xml2js,这是一个简单的XML转JavaScript对象的转换器。然后您可以迭代生成的对象。以下是页面上的代码片段:
var parseString = require('xml2js').parseString;
var xml = "<root>Hello xml2js!</root>"
parseString(xml, function (err, result) {
console.dir(result);
});
您可以使用npm install xml2js
进行安装。
const xmlparser = require('express-xml-bodyparser');
// .. other middleware ...
app.use(express.json());
app.use(express.urlencoded());
app.use(xmlparser());
// ... other middleware ...
app.post('/receive-xml', function(req, res, next) {
// req.body contains parsed XML as JSON
});
具体路由:
app.post('/receive-xml', xmlparser({trim: false, explicitArray: false}), function(req, res, next) {
// req.body contains parsed XML as JSON
});
var XMLS = new XMLSerializer();
var elem = document;
var xml_str = XMLS.serializeToString(elem);
console.log(xml_str);
DOMParser示例(从字符串到DOM):
var parser = new DOMParser();
var doc = parser.parseFromString(xml_str, "application/xml");
console.log(doc);