Análisis de datos XML en Angular 2
Soy nuevo en AngularJS2 y TypeScript, en mi proyecto tengo una variable de tipo string que contiene XML como cadena, necesito procesar la cadena y acceder a los datos en la cadena según el nodo en el XML. Estoy teniendo dificultades buscando en Google. Por favor, ayúdame.
<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>
Este es el XML que necesito procesar. Necesito acceder a los datos según los nodos, por ejemplo: nombre de
Respuesta #1
A día de hoy, el código sugerido en otra respuesta (que sugiere node-xml2js) no funcionó. En lugar de:
let parseString = require('xml2js').parseString;
Usé:
import { parseString } from 'xml2js';
La parte restante estaba bien. Se utilizó Angular-cli.
Respuesta #2
Si utilizas angular-cli para iniciar tu aplicación, el siguiente analizador XML viene ya con la instalación del proyecto.
https://github.com/Leonidas-from-XIV/node-xml2js
Así que no necesitas agregar módulos adicionales para esto. Como es un módulo clásico de commonJS, necesitas usar require para importarlo:
let parseString = require('xml2js').parseString;
Así que tu código puede verse así:
let parseString = require('xml2js').parseString;
let xml = "<root>Hello xml2js!</root>"
parseString(xml, function (err, result) {
console.dir(result);
});
Recibirás la siguiente salida:
En cualquier caso, si ni siquiera usas angular-cli o quieres usar tu módulo preferido para analizar xml, usa require para cargarlo.
