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

问题描述 投票:2回答:0

我的任务看似很简单:服务器发布一个XML文件。 我将那个XML文件转换为JSON并通过res.send()返回。 我在Express中使用Node.js,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正文或String(req.body),再次剪切多余的字符。 我发现,您也不能这样做。 它再次转义引号。 (使用bodyParser.text()似乎也不起作用)

xml2js需要一个看起来像这样的字符串:

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

发布的XML文件具有正确的格式,并且默认情况下格式正确。 我已经使用xml2json对其进行了手动测试,并且工作正常。 我得到的内容也是正确的,只是格式不正确。 为了进一步实现自动化,我只需要通过Http-post使它工作。

javascript json xml node.js express
© www.soinside.com 2019 - 2024. All rights reserved.