可同时用于浏览器和Node.js的XML分析器? [英] XML Parser that works for both browser and Node.js?

查看:84
本文介绍了可同时用于浏览器和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>


推荐答案

尝试 fast-xml-parser

在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆