サーバーから取得した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);
});
実行すると、次の2つのエラーが発生します。
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を解析する方法はありますか?
これらの依存関係をインストールする必要があります。残念ながら十分に文書化されていません。
npm install --save stream timers
Angularがxml2jsを認識するには、次の手順が必要です。
"compilerOptions": {
"paths": {
"timers": [
"node_modules/timers-browserify"
],
"stream": [
"node_modules/stream-browserify"
],
}
}