可同时用于浏览器和Node.js的XML分析器? [英] XML Parser that works for both browser and Node.js?
本文介绍了可同时用于浏览器和Node.js的XML分析器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
手头的问题:我在客户端和服务器端都有XML,但是没有一致的方法在两边解析XML。
Problem at hand: I have XML on the client side and the server side, but there's no consistent way to parse XML on both sides.
大多数浏览器都具有DOMParser 。但是Node.js没有内置的XML解析器。用于XML解析的Node.js有很多模块,但是我正在寻找一个对前端和后端都一致的XML解析器API。换句话说,我正在寻找可以在Node.js中使用的XML解析模块,
Most browsers have DOMParser. But Node.js doesn't have a built-in XML parser. There are lots of modules for Node.js for XML parsing, but I'm looking for a XML parser API that is consistent for both front-end and back-end. In other words, I'm looking for a XML parsing module that can be used in Node.js like this
const parser = require(magic_library);
const doc = parser.parseFromString(xml_string, 'application/xml');
以及在这样的浏览器中
<script src="magic_library"></script>
<script>
const doc = parser.parseFromString(xml_string, 'application/xml');
</script>
推荐答案
在Node.js中
var fastXmlParser = require('fast-xml-parser');
var jsonObj = fastXmlParser.parse(xmlData);
// when a tag has attributes
var options = {
attrPrefix : "@_",
textNodeName : "#text",
ignoreNonTextNodeAttr : true,
ignoreTextNodeAttr : true,
ignoreNameSpace : true,
ignoreRootElement : false,
textNodeConversion : true,
textAttrConversion : false,
arrayMode : false
};
if(fastXmlParser.validate(xmlData)=== true){//optional
var jsonObj = fastXmlParser.parse(xmlData,options);
}
//Intermediate obj
var tObj = fastXmlParser.getTraversalObj(xmlData,options);
var jsonObj = fastXmlParser.convertToJson(tObj);
在浏览器中
var isValid = parser.validate(xmlData);
var jsonObj = parser.parse(xmlData);
这篇关于可同时用于浏览器和Node.js的XML分析器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文