解析 Angular2 中的 xml 以在视图中呈现

2024-05-02

我是否需要解析 xml 以从 xml 获取数据以在 html 中呈现?我目前正在使用获取本地 .xml 文件http.get请求并在控制台日志中显示 xml 文件中的所有信息,我认为它只是在读取它。

问题是如何在angular2中将xml转换为json格式?

我尝试过console.log(data.title)但这让我返回unidentified

getXml() {
   this.http.get('../../xmlConf/dashboard_journey.xml')
    .map(response => response.text())
    .subscribe(data => {
        if(data) {
            console.log('fetching your xml');
            console.log(data); // this shows me everything
        }
    });
}

xml

<xml>
<journey>
    <title>Click and Collect</title>
    <shortDesc>
        <short_desc_1>lorem</short_desc_1>
        <short_desc_2>lorem</short_desc_2>
    </shortDesc>
    <longDesc>
        lorem
    </longDesc>
    <imageName>
        <img src="/journey_images/clickandcollect.jpg" alt="Click and Collect"/>
    </imageName>
</journey>

使用下面的答案

var parser = new DOMParser();
xmlData = parser.parseFromString(data, "application/xml");

上述代码的console.log:

目前正在执行 for 循环来迭代解析的 xml,但在我看来,它只给了我一个对象。 ngFor 仅迭代数组中的对象。

for (var i = 0; i <= newFormat.childNodes.length; i++) {
                this.title = newFormat.getElementsByTagName('title')[i].childNodes[0].nodeValue;
                this.desc = newFormat.getElementsByTagName('desc')[i].childNodes[0].nodeValue;
                console.log(this.title + ' = ' +  this.desc);
            }

view:

<li>{{ title }}</li>

您可以使用DOM解析器 https://developer.mozilla.org/en/docs/Web/API/DOMParser

您只需将数据变量传递给 DOMParser,然后就可以通过引用访问元素

Example

var parser = new DOMParser();
xmlData = parser.parseFromString(data, "application/xml");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解析 Angular2 中的 xml 以在视图中呈现 的相关文章

随机推荐