Angular 6中的xml2js:无法解析“流”和“计时器”

时间:2018-08-30 23:08:19

标签: javascript xml angular typescript

我想解析从服务器检索到的xml数据。不幸的是HttpClient不支持xml,仅支持json,因此我安装了软件包xml2js

npm install xml2js --save
npm install @types/xml2js --save-dev

然后我尝试像这样使用它:

import {Parser} from 'xml2js';

Parser.parseString(xml_str, function (err, result) {
    console.dir(result);
});

如果运行它,我会收到以下两个错误:

WARNING in ./node_modules/xml2js/node_modules/sax/lib/sax.js
Module not found: Error: Can't resolve 'stream' in 'C:\projects\app\node_modules\xml2js\node_modules\sax\lib'

ERROR in ./node_modules/xml2js/lib/parser.js
Module not found: Error: Can't resolve 'timers' in 'C:\projects\app\node_modules\xml2js\lib'

我没有找到任何解决此问题的方法,也许这只是Angular6问题。有什么办法可以在Angular6中解析xml?

2 个答案:

答案 0 :(得分:8)

您必须安装这些依赖项。不幸的是,它没有很好的记录。

public Registration addChangeListener(Upload.ChangeListener listener)

答案 1 :(得分:0)

要使Angular识别xml2js,需要执行以下步骤:

  1. 使用“ npm install timers-browserify”添加timers-browserify节点模块
  2. 使用“ npm install stream-browserify”添加stream-browserify节点模块
  3. 在您的tsconfig.json中添加以下路径映射:
    "compilerOptions": {
      "paths": {
        "timers": [
          "node_modules/timers-browserify"
        ],
        "stream": [
          "node_modules/stream-browserify"
        ],
      }
    }