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

时间:2016-09-28 11:42:39

标签: javascript json xml node.js express

我的任务看似简单:服务器发布XML文件。我接受XML-File并将其转换为JSON并通过res.send()返回; 我使用Node.js与Express,express-bodyparser,xml2js库和express-json。 (也尝试过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]。 xml2js解析器无法使用它。所以我的两个解决方案看起来像这样:

  1. JSON.stringify()那个东西并删除前两个和最后一个 两个角色,你很高兴。但显然是JSON.stringify() 将对象解释为转义每个引号的String 使用反斜杠,从而使我的xmlparser无法使用。
  2. .toString body或String(req.body),再次削减额外的字符。我发现,你也不能这样做。它再次逃避引号。 (使用bodyParser.text()似乎也不起作用)
  3. xml2js需要一个字符串,如下所示:

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

    发布的XML文件格式正确,默认格式正确。我用xml2json手动测试它,它工作正常。我得到的内容也是正确的形式。为了进一步自动化,我只需要通过Http-post来实现这一点。

0 个答案:

没有答案