gpt4 book ai didi

xml - 如何在 Angular 2 中解析 xml

转载 作者:数据小太阳 更新时间:2023-10-29 01:38:53 25 4
gpt4 key购买 nike

我使用的 API 使用 XML 而不是 JSON。关于如何将以下 XML 转换为 JSON 或如何在 ngFor 指令中正确使用数据的任何建议?

此外,Observable 在这里是否合适?

<case-file>
<serial-number>123456789</serial-number>
<transaction-date>20150101</transaction-date>
<case-file-header>
<filing-date>20140101</filing-date>
</case-file-header>
// ...
<classifications>
<classification>
<international-code-total-no>1</international-code-total-no>
<primary-code>025</primary-code>
</classification>
</classifications>
</case-file>
<case-file>
<serial-number>234567890</serial-number>
<transaction-date>20160401</transaction-date>
<case-file-header>
<filing-date>20160401</filing-date>
</case-file-header>
//...
<classifications>
<classification>
<international-code-total-no>1</international-code-total-no>
<primary-code>042</primary-code>
</classification>
</classifications>
</case-file>

export class apiService {
constructor (private http: Http) {}

private _apiUrl = 'app/api';

getCaseFile () {
return this.http.get(this._apiUrl)
//conversion to JSON here?
.map(res => <CaseFile[]> res.json().data)
.catch(this.handleError);
}
private handleError (error: Response) {

console.error(error);
return Observable.throw(error.json().error || 'Server error');
}
}

<div *ngFor="#cf of case-file">{{case-file.serial-number}}</div>

最佳答案

基于图书馆http://goessner.net/download/prj/jsonxml/ ,我实现了一个示例来接收 XML 数据并将它们解析为 Angular2 应用程序:

var headers = new Headers();
(...)
headers.append('Accept', 'application/xml');

return this.http.get('https://angular2.apispark.net/v1/companies/', {
headers: headers
}).map(res => JSON.parse(xml2json(res.text(),' ')));

为了能够使用该库,您需要先解析 XML 字符串:

var parseXml;

if (typeof window.DOMParser != "undefined") {
parseXml = function(xmlStr) {
return ( new window.DOMParser() ).parseFromString(xmlStr, "text/xml");
};
} else if (typeof window.ActiveXObject != "undefined" &&
new window.ActiveXObject("Microsoft.XMLDOM")) {
parseXml = function(xmlStr) {
var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlStr);
return xmlDoc;
};
} else {
throw new Error("No XML parser found");
}

看到这个问题:

查看此插件:https://plnkr.co/edit/dj63ASQAgrNcLLlwyAum?p=preview .

关于xml - 如何在 Angular 2 中解析 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36368405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com