2017-02-23 100 views
0

Im新增了angularjs2和typescript,在我的项目中我有一个字符串变量,包含xml作为字符串,我需要处理字符串并根据XML.Im中的节点访问字符串中的数据Google搜索困难,请帮助我。在angular 2中解析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我需要process.i需要根据节点例如访问数据:从

回答

0

如果使用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); 
}); 

你将得到一个输出:

enter image description here

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

+0

使用“let”时出现错误。 – biff

+0

然后用'var'代替'let'。您的项目中不使用typescript/es6? – VadimB

+0

雅我知道了...我有另一个怀疑我怎么可以从节点访问数据 – biff

0

到今天为止,其他答案(建议node-xml2js)中的建议代码没有工作。 相反的:

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

我用:

import { parseString } from 'xml2js'; 

其余部分是确定的。 使用Angular-cli。