【问题标题】:XML data parsing in angular 2角度 2 中的 XML 数据解析
【发布时间】:2017-07-13 15:01:56
【问题描述】:

我是 angularjs2 和 typescript 的新手,在我的项目中,我有一个包含 xml 作为字符串的字符串变量,我需要根据 XML 中的节点处理字符串并访问字符串中的数据。我很难通过谷歌搜索。请帮帮我。

<groupDirectory>
<directoryDetails>
 <userId>extn5001</userId>
 <firstName>Park</firstName>
 <lastName>1</lastName>
 <groupId>communications</groupId>
 <extension>5001</extension>
</directoryDetails>
<directoryDetails>
 <userId>Yealinkt27ptest</userId>
 <firstName>Yealink T</firstName>
 <lastName>27P</lastName>
 <groupId>communications</groupId>
 <extension>4676</extension>
</directoryDetails>
<groupDirectory>

这是我需要处理的 xml。我需要根据节点访问数据,例如:来自

的名称

【问题讨论】:

    标签: xml angular typescript visual-studio-code


    【解决方案1】:

    到今天为止,其他答案中的建议代码(建议 node-xml2js)不起作用。 而不是:

    let parseString = require('xml2js').parseString;
    

    我用过:

    import { parseString } from 'xml2js';
    

    剩下的部分没问题。 使用了 Angular-cli。

    【讨论】:

      【解决方案2】:

      如果您使用 angular-cli 引导您的应用程序 - 下一个 xml 解析器已经与项目安装一起提供。

      https://github.com/Leonidas-from-XIV/node-xml2js

      因此您不需要为此添加额外的模块。因为它是经典的 commonJS 模块 - 你需要使用 require 来导入它:

      let parseString = require('xml2js').parseString;
      

      所以你的代码看起来像:

      let parseString = require('xml2js').parseString;
      let xml = "<root>Hello xml2js!</root>"
      
      parseString(xml, function (err, result) {
        console.dir(result);
      });
      

      您将收到下一个输出:

      在任何情况下 - 如果您甚至不使用 angular-cli 或想要使用您的首选模块来解析 xml - 请使用 require 来加载它。

      【讨论】:

      • 然后使用var 而不是let。你的项目中没有使用 typescript/es6?
      • 是的,我明白了...我还有一个疑问,我如何从节点访问数据
      • 你能帮我从 xml 中的节点访问值吗
      • 我有这样的 XML ToveJaniReminder这个周末别忘了我! 得到这样的 JSON {"note":{"to":["Tove"],"from":["Jani"],"heading":["Reminder"]," body":["这个周末别忘了我!"]}}
      猜你喜欢
      • 2013-06-08
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      相关资源
      最近更新 更多