Angular2:将 XML 转换为 JSON
Posted
技术标签:
【中文标题】Angular2:将 XML 转换为 JSON【英文标题】:Angular2: Convert XML to JSON 【发布时间】:2017-08-07 21:01:01 【问题描述】:我想将从 Web API 响应收到的 XML 转换为 Angular 2 中的 JSON。该应用程序是在 Nativescript 中开发的。无法找到解决方案。
【问题讨论】:
这个你试过了吗:npmjs.com/package/nativescript-xml2js ***.com/questions/36368405/… 的副本。 How to parse xml in Angular 2的可能重复 根据 Nativescript 团队的通知和实验,上述模块似乎都不能与 nativescript angular 2 一起使用。那么还有其他替代方案可以与 nativescript angular 2 一起使用吗? 奇怪,所以你查找了对 nativescript-xml2js 的支持,它说它不适用于 nativescript? 【参考方案1】:我发现了一个很棒的包,让这变得非常简单。
xml2js
对我来说,我是在 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);
);
See this jsfiddle
我希望这会有所帮助。
【讨论】:
不知何故我无法看到 parseAtring 函数中的日志。肥皂信封是我从 web api 的回应。 所以您是说您正在尝试控制台结果但它不起作用?请您在函数之外进行 console.log 测试。确保我们正在运行该文件。 console.dir 不工作,我不知道如何从中得到结果。 var parseString = require('xml2js').parseString; var xml = "如果您正在使用 Angular 2 进行 POST 并获取 XML 响应:使用 xml2js - https://www.npmjs.com/package/xml2js
-
npm install xml2js --save
在服务文件中导入为:
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);
);
【讨论】:
【参考方案3】:function parseXml(xmlStr)
var result;
var parser = require('xml2js');
parser.Parser().parseString(xmlStr, (e, r) => result = r);
return result;
【讨论】:
为您的代码添加更多上下文,以帮助未来的读者更好地理解其目的。以上是关于Angular2:将 XML 转换为 JSON的主要内容,如果未能解决你的问题,请参考以下文章
Angular2 HTTP GET - 将响应转换为完整对象
Typescript / Angular2:将 JSON 转换为与 Observable 和 JSONP 接口
Angular 2 - 使用 ngStyle 将背景图像转换为 html 文件
Angular 2:将 Observable 转换为 Promise