我的代码总是打印错误日志,我如何找到异常,请告诉我正确的方法 这是我的代码
this.http.get('http://www.gazetaexpress.com/rss/sport/?xml=1').subscribe(data => {
this.xmlItems = data;
console.log("data:"+data);
xml2js.parseString(this.xmlItems, function (err, result) {
console.log(result);
});
}, error => {
console.log(error);
});
答案 0 :(得分:2)
我认为您遇到的问题不是这里解析XML,而是您如何从离子/角度应用程序中访问URL。
我简化了此代码示例:
this.http.get('http://www.gazetaexpress.com/rss/sport/?xml=1').subscribe(data => {
console.log(data);
}, error => {
console.log(error);
});
现在将其作为方法添加到此stackblitz中的ionViewDidLoad中: https://stackblitz.com/edit/ionic-4qbega
基于此上下文得到的错误是这个:
HttpErrorResponse {headers: {…}, status: 0, statusText: "Unknown Error", url: null…}
error: ProgressEvent
headers: HttpHeaders
message: "Http failure response for (unknown url): 0 Unknown Error"
name: "HttpErrorResponse"
ok: false
status: 0
statusText: "Unknown Error"
url: null
__proto__: HttpErrorResponse
因此,要解决数据摄入问题,您需要执行以下操作:
代码:
this.http.get('https://www.gazetaexpress.com/rss/sport/?xml=1', {responseType: 'text'}).subscribe(data => {
console.log(data);
}, error => {
console.log(error);
});
现在要使用您的代码,应该是这样的:
this.http.get('https://www.gazetaexpress.com/rss/sport/?xml=1', { responseType: 'text'}).subscribe(data => {
this.xmlItems = data;
console.log("data:"+data);
xml2js.parseString(this.xmlItems, function (err, result) {
console.log(result);
});
}, error => {
console.log(error);
});
PS:如果您还有其他问题,也可以在这里查看这篇优秀文章:https://www.ionicrun.com/transform-xml-to-json-in-ionic-2-with-angular-4-3/