从Angular 4中的Web服务获取xml

时间:2017-10-11 15:42:58

标签: json xml angular api xml2js

我只是尝试从某个域中检索xml数据并将其读取到我的应用程序中。现在,我只想阅读原始数据。根据我的研究,我发现最好将xml转换为json并将它们加载到应用程序中。这是我试图转换和打印它们。有人可以建议我做错了吗?

mLine table:
id  |network |type |....|environment |...
-----------------------------------------
54  |Force   |SW   |....|3           |...

1 个答案:

答案 0 :(得分:0)

您的代码有两个问题:

  1. parseString()方法不是同步的,所以它不会返回已解析的对象,需要使用回调。

  2. 您正尝试通过parseString()JSON.parse()的结果转换为JSON。那是错的,因为结果应该是JS对象。您根本不需要JSON.parse()来电。

  3. 试试这样:

    getProduction() {
        var headers = new Headers({'Content-Type': 'text/xml'})
        headers.set('Accept', 'text/xml');
        headers.set('Content-Type', 'text/xml');
    
        //make the http request
        return this.http
            .get(this.url, {headers})
            .subscribe(res => {
                parseString(res.text(), (err, result) => {
                    if (err) {
                        return console.log('invalid XML');
                    }
    
                    console.log(result);
                })
            }, err => this.handleError(err);
    }
    
    private handleErorr(error: Response) {
        console.log('something went wrong');
        return Observable.throw(error.json().error || 'server error');
    }