我試圖創建從JSON OBJ和其給我的結果根元素的XML生成的XML刪除根節點,我嘗試設置explicitRootvar parser = xml2js.Parser({explicitRoot:false});
假,但它不會刪除默認的根標籤,但只刪除我的一部開拓創新的XML根標籤使用xml2jsNode.js的使用xml2js
<?xml version="1.0" encoding="utf-8"?>
<VAST version="2.0">
<Ad id="72419"></Ad>
</VAST>
生成的XML (<VSAT></VSAT>)
處理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);
}
兩個JSON和XML應該有一個根元素(除非JSON是一個數組,它是,但你不應該嘗試將其轉換爲XML)。在問題中提供示例JSON和結果XML是明智的,只是爲了更好地說明它。 – grochmal
等一下,你使用'xml2js.Builder()'而不是'xml2js.Parser()'來製作JSON-> XML,對吧? – grochmal
@grochmal的權利。 – AngularLearner