Angular 2.でWeb API応答から受け取ったXMLをJSONに変換したかった。アプリケーションはNativescriptで開発されています。この解決策が見つかりません。
これをとても簡単にする素晴らしいパッケージを見つけました。
私にとっては、angular 2アプリケーションですが、ノード側で実行しています。
npm install xml2js --save
このようにxmlを渡すのと同じくらい簡単です。
var parseString = require('xml2js').parseString;
var xml = "<root>Hello xml2js!</root>"
parseString(xml, function (err, result) {
console.dir(result);
});
私のアプリにはxmlファイルがあり、次のように使用しました。
var fs = require('fs');
var parseString = require('xml2js').parseString;
function requestCreditReport(callback) {
fs.readFile('./credit-api/response.xml', 'utf8', function (err,data) {
if (err) return callback(err);
parseString(data, callback);
});
}
これがお役に立てば幸いです。
これは、POSTを実行し、Angular 2:Use xml2js- https://www.npmjs。 com/package/xml2js
サービスファイルにインポート:import * as xml2js from 'xml2js';
コード:
let formdata = new URLSearchParams();
formdata.set('username','username');
formdata.set('pw','pw');
let headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded' });
let options = new RequestOptions({ headers: headers, method: RequestMethod.Post});
postData () {
this.http.post(this._yourUrl, formdata.toString(), options)
//convert to JSON here
.map(res => {
xml2js.parseString( res.text(), function (err, result) {
console.dir(result); // Prints JSON object!
});
})
.subscribe(data => {
console.log(data);
});
}
function parseXml(xmlStr) {
var result;
var parser = require('xml2js');
parser.Parser().parseString(xmlStr, (e, r) => {result = r});
return result;
}