#json #angular #xml #xml-parsing
Вопрос:
Когда я пытаюсь отобразить свои данные в браузере, я получаю следующую ошибку:
ОШИБКА Ошибка: Не найдено (в обещании): Ошибка типа: Не удается прочитать свойства неопределенного (чтение «Синтаксический анализатор») Ошибка типа: Не удается прочитать свойства неопределенного (чтение «Синтаксический анализатор»)
Это мой файл .ts
import { Component, OnInit } from '@angular/core';
import { xml2js} from 'xml2js';
import { HttpClient, HttpHeaders } from '@angular/common/http';
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {
public xmlItems: any;
constructor(private http: HttpClient) {
this.loadXML();
}
loadXML() {
this.http.get('/assets/data.xml',
{
headers: new HttpHeaders()
.set('Content-Type', 'text/xml')
.append('Access-Control-Allow-Methods', 'GET')
.append('Access-Control-Allow-Origin', '*')
.append('Access-Control-Allow-Headers', "Access-Control-Allow-Headers, Access-Control-Allow-Origin, Access-Control-Request-Method"),
responseType: 'text'
})
.subscribe((data) => {
this.parseXML(data)
.then((data) => {
this.xmlItems = data;
console.log(this.xmlItems);
});
});
}
parseXML(data) {
return new Promise(resolve => {
var k: string | number,
arr = [],
parser = new xml2js.Parser(
{
trim: true,
explicitArray: true
});
parser.parseString(data, function (err, result) {
let obj = result.root;
for (k in obj.parent) {
let item = obj.parent[k];
arr.push({
child: item.child[0]
});
}
resolve(arr);
});
});
} }