xml2jsを使用してXMLを結果からルートノードを削除し、私がobj JSONからXMLを作成しようとしていると、その私に、結果のルート要素を与え、私はfalseにexplicitRootvar parser = xml2js.Parser({explicitRoot:false});
を設定しようとしたが、それは削除されませんデフォルトのルートタグが、xml2js XML結果のNode.jsのは
<?xml version="1.0" encoding="utf-8"?>
<VAST version="2.0">
<Ad id="72419"></Ad>
</VAST>
使用してちょうど私のorignalの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の両方からサポートされていますが(ルート要素を持っているはずですが、あなたはしてみてはいけませんXMLに変換してください)。 JSONの例とその結果のXMLを質問に提供するのは賢明です。 – grochmal
待って、あなたは 'xml2js.Parser()'ではなく 'xml2js.Builder()'を使ってJSON-> XMLを作っていますよね? – grochmal
@ grochmal right。 – AngularLearner