nodejs简单操作xml

来源:互联网 发布:吃东西知乎 编辑:程序博客网 时间:2024/06/01 10:14

这里简单介绍一下nodejs的第三方模块xml2js、fast-xml-parser、xml2json操作xml

多的不说了,直接进入主题:

下面是我要操作的xml:

<?xml version="1.0" encoding="UTF-8"?><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>

具体代码如下:

var xml2js = require('xml2js');var fs = require('fs');//创建builder的时候参数说明://rootName (default root or the root key name)//renderOpts (default { 'pretty': true, 'indent': ' ', 'newline': '\n' })//xmldec (default { 'version': '1.0', 'encoding': 'UTF-8', 'standalone': true }//headless (default: false)//cdata (default: false): wrap text nodes in <![CDATA[ ... ]]>var jsonBuilder = new xml2js.Builder({   rootName:'bean',   xmldec:{      version:'1.0',      'encoding': 'GBK',      'standalone': false}}); // jons -> xmlvar xmlParser = new xml2js.Parser({explicitArray: false, ignoreAttrs: true}); // xml -> jsonvar json = {   name: 'xxxxxx',   pass: '111111',   card: 5252452};function nameToUpperCase(name){   return name.toUpperCase();}// jons -> xmlvar json2xml = jsonBuilder.buildObject(json);console.log('json解析成xml:'+json2xml);// xml -> jsonfs.readFile('../public/test.xml','utf-8',function(err,result){   xmlParser.parseString(result, function (err, result) {    console.log('xml解析成json:'+JSON.stringify(result));    });});


运行结果:




fast-xml-parser用法简介:


xml内容用上一个例子,

var fastXmlParser = require('fast-xml-parser');var fs = require('fs.js');//最简单的写法,直接调用parse方法fs.readFile('../public/test.xml','utf-8',function(err,result){    var jsonObj = fastXmlParser.parse(result);    console.log('xml解析成json:'+JSON.stringify(jsonObj));});//当一个标签具有属性时var options = {    attrPrefix : "@_",    textNodeName : "#text",    ignoreNonTextNodeAttr : true,    ignoreTextNodeAttr : true,    ignoreNameSpace : true,    textNodeConversion : true};fs.readFile('../public/test.xml','utf-8',function(err,result){    if(fastXmlParser.validate(xmlData)=== true){//optional
        var jsonObj = fastXmlParser.parse(result,options);        console.log('xml解析成json:'+JSON.stringify(jsonObj));    }});//中间解析fs.readFile('../public/test.xml','utf-8',function(err,result){
    var tObj = fastXmlParser.getTraversalObj(result,options);    var jsonObj = fastXmlParser.convertToJson(tObj);    console.log('xml解析成json:'+JSON.stringify(jsonObj));});
建议自己在本地测试一下。


xml2json简单介绍:

var xml2json = require('xml2json');var fs = require('fs');//toJson第二个参数options如下:var options = {    object: false,    reversible: false,    coerce: false,    sanitize: true,    trim: true,    arrayNotation: false,    alternateTextNode: false};fs.readFile('../public/test.xml','utf-8',function(err,result){    var xmltojsonobj = xml2json.toJson(result,options);    console.log('xml解析成json:'+xmltojsonobj);});var json = {    name: 'xxxxxx',    pass: '111111',    card: 5252452};var jsontoxmlobj = parser.toXml(json);console.log('json解析成xml:'+jsontoxmlobj);



关于操作nodejs操作xml的各个模块比较:

  • xml-mapping : 速度快, 结果却不是那么令人满意,有瑕疵。
  • xml2js : 速度快, 结果却不是那么令人满意,有瑕疵。
  • xml2js-expat : 无法测试性能,因为它在高负载时出错。
  • xml2json : 基于node-expat . 在travis上不能安装.
  • fast-xml-parser : 非常非常快.

原创粉丝点击