Node / Express.js – 使用HTTP-Post获取XML并将其转换为JSON

我的任务看起来很简单:服务器发布一个XML文件。 我把这个XML文件,并将其转换为JSON,并通过res.send()返回此。 我使用Express,express-bodyparser,xml2js库和express-json来使用Node.js。 (也试过express-xml-bodyparser)

我的代码应该是这样的:

[...] app.post('/postXML', function(req,res,next){ xml2jsParser.parseString(req.body, function(err, result){ if(!err){ res.send(result); }else{ console.log(err); } }); parser.reset(); }); [...] 

我的问题是:req.body看起来像这样{" /*XML-file*/ "} typeof返回[object]。 xml2jsparsing器不能用于此。 所以我的两个解决scheme看起来像这样:

  1. JSON.stringify()的东西,并删除前两个和最后两个字符,你很好去。 但显然JSON.stringify()将该对象解释为一个string,用反斜杠对每个引号进行转义,从而使其不能用于我的xmlparser。
  2. .toString的身体或string(req.body),再次削减额外的字符。 我发现,你也不能这样做。 它再次逃避引语。 (使用bodyParser.text()似乎也没有工作)

xml2js需要一个如下所示的string:

 var xml = "<outer><inner attributename = "content"></inner></outer>" 

发布的XML文件具有正确的格式,并且是默认格式良好的。 我已经用xml2json手动testing它,它工作正常。 我得到的内容也是正确的forms。 为了进一步自动化,我只需要通过Http-post得到这个工作。