使用Node.js的XML格式错误的修复

时间:2019-01-30 19:26:13

标签: node.js xml

我有这样的xml,但是我想通过node.js将xml转换为正确的xml

<?xml version = 1.0 encoding = utf-8?>
<!-- xslplane.1.xml -->
<?xml-stylesheet type = text/xsl  href = xslplane.1.xsl ?>
<plane>
   <year> 1977 </year>
   <make> Cessna </make>
   <model> Skyhawk </model>
   <color> Light blue and white </color>
</plane>

我想要带有所有可能引号的XML

<?xml version = "1.0" encoding = "utf-8"?>
<!-- xslplane.1.xml -->
<?xml-stylesheet type = "text/xsl"  href = "xslplane.1.xsl" ?>
<plane>
   <year> 1977 </year>
   <make> Cessna </make>
   <model> Skyhawk </model>
   <color> Light blue and white </color>
</plane>

1 个答案:

答案 0 :(得分:0)

您可以尝试使用xml2js将格式错误的xml转换为JSON,然后再次使用它来转换为xml。尝试以下代码。

let xml2js = require('xml2js');
var xml = "<hi>Hello xml2js!</hi>";
xml2js.parseString(xml, function (err, result) {
    console.dir(result);
    var builder = new xml2js.Builder();
    var xml = builder.buildObject(result);
    console.log(xml)
});

更新:直接读取文件

var parser = new xml2js.Parser();
fs.readFile(__dirname + '/foo.xml', function(err, data) {
    parser.parseString(data, function (err, result) {
        console.dir(result);
        console.log('Done');
        var builder = new xml2js.Builder();
        var xml = builder.buildObject(result);
        console.log(xml)
    });
});