如何将 xml 解析为 Json ionic 2



过去三天我一直在这个问题上。我想将通过HTTP检索的XML转换为JSON,以便我可以在ionic 2中显示它。这是我在提供商中的代码..任何帮助将不胜感激。谢谢!

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
import * as xml2js from "xml2js";

@Injectable()
export class News {
    constructor(public http: Http) { }
    public getData() {
        this
            .http
            .get('https://www.ug.edu.gh/news.xml')
            .map(res => {
                var cleanedString = res.toString().replace("ufeff", "");
                xml2js
                .parseString(cleanedString, (error, result) => {
                    console.log(result);
                    return result;
                });
            })
            .subscribe((data) => {
                console.log(data)
            }, (err) => {
                console.log(err)
            });
    }
}

用于在离子 2 中将 xml 解析为 json您现在可以使用以下命令安装 xml2json 的类型

typings install xml2json --save

如果它生成这样的错误

'typings' is not recognized as an internal or external command,
 operable program or batch file.

然后首先使用此命令安装键入

npm install typings -g

然后运行上一个命令

typings install xml2json --save

然后它会正常工作。希望它对你有用

你快到了。当您从parseString方法return数据时出现问题。你只需要使用一个临时变量,从 parseString 方法分配结果并返回该临时变量,如下所示:

// ...
.map(res => {
    let cleanedString = res.toString().replace("ufeff", "");
    let jsonData;
    xml2js
    .parseString(cleanedString, (error, result) => {
        if(error) {
            console.error(error);
            jsonData = error;
        } else {
            jsonData = result;
        }
    });
    return jsonData;
}).subscribe((data) => {
// ...

这里给出了更深入的描述和替代方法。

相关内容

  • 没有找到相关文章

最新更新