gpt4 book ai didi

xml - Node.js 使用 xml2js 从生成的 XML 中删除根 Node

转载 作者:数据小太阳 更新时间:2023-10-29 01:55:52 24 4
gpt4 key购买 nike

我正在尝试从 JSON obj 创建 XML 并在结果中为我提供根元素,我尝试设置 explicitRoot var parser = xml2js.Parser({explicitRoot:false});为 false 但它不会删除默认根标记,而只是删除我的原始 XML 根标记 (<VSAT></VSAT>)

使用 xml2js 处理 XML

<?xml version="1.0" encoding="utf-8"?>
<VAST version="2.0">
<Ad id="72419"></Ad>
</VAST>

生成的 XML:

<?xml version="1.0" encoding="utf-8"?>
<root>
<VAST version="2.0">
<Ad id="72419"></Ad>
</VAST>
</root>

有什么想法吗?

完整代码

/*
NodeJS server
*/
var http = require('http');
var xml2js = require('xml2js');
var fs = require('fs');
var util = require('util');
var json,PORT=2000;

var server = http.createServer(function(request, response){
response.writeHead(200,{'Content-Type':'text/html'});
try{
var filedata = fs.readFileSync('vast_all.xml','ascii');

var parser = xml2js.Parser({explicitRoot:true});
parser.parseString(filedata.substring(0,filedata.length),function(err,result){
result.new = 'test';
json = JSON.stringify(result);

var builder = new xml2js.Builder({
xmldec:{ 'version': '1.0', 'encoding': 'UTF-8' },
cdata:true,
});

var xml = builder.buildObject(json);
response.write(json);
/*console.log(util.inspect(builder, false, null));*/
});

response.end();
}
catch(e){
console.log(e);
}
});


console.log("Server running at port "+PORT);
try{
server.listen(PORT);
}
catch(e){
console.log(e);
}

最佳答案

设置headless在实例化 Builder 时为真,例如:

let builder = new xml2js.Builder({headless: true});

这对我有用。它删除了:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

但这仅从版本 0.4.3 开始支持

关于xml - Node.js 使用 xml2js 从生成的 XML 中删除根 Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38244545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com