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



我想解析从服务器检索到的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:projectsappnode_modulesxml2jsnode_modulessaxlib'
ERROR in ./node_modules/xml2js/lib/parser.js
Module not found: Error: Can't resolve 'timers' in 'C:projectsappnode_modulesxml2jslib'

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

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

npm install --save stream timers

要使 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"
],
}
}

最新更新