适用于浏览器和Node.js的XML Parser?

时间:2017-08-15 01:00:30

标签: javascript node.js xml browser node-modules

手头的问题:我在客户端和服务器端都有XML,但是没有一致的方法来解析双方的XML。

大多数浏览器都有DOMParser。但是Node.js没有内置的XML解析器。 Node.js有很多用于XML解析的模块,但我正在寻找一个对前端和后端都一致的XML解析器API。换句话说,我正在寻找一个可以在Node.js中使用的XML解析模块,比如这个

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>

2 个答案:

答案 0 :(得分:2)

尝试fast-xml-parser

在Node.js

library(data.table)
setDT(dat)
dat[
  melt(dat, id.vars="personID")[value > 10, .(new=min(value)), by=personID],
  on="personID"
]

#   personID t1 t2 t3 new
#1:        1  0 11  0  11
#2:        1  0 11  0  11
#3:        2  0 11 13  11
#4:        2  0 11 13  11

在浏览器中

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);

答案 1 :(得分:0)

您可能想尝试txml。它是最快的xml解析器,可在节点,浏览器和工作程序中使用。而且API非常干净:https://www.npmjs.com/package/txml