2017-02-23 6 views
0

Ich bin neu zu angularjs2 und typescript, in meinem Projekt habe ich eine String-Variable mit xml als String, ich muss die Zeichenfolge verarbeiten und auf die Daten in der Zeichenfolge nach Knoten in der XML.Im zugreifen durch googeln schwer haben. Bitte helfen Sie mir aus.XML-Datenanalyse in eckig 2

<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> 

dies ist die xml ich brauche müssen process.i Daten zuzugreifen nach Knoten zB: Name von

Antwort

0

Wenn Sie angular-cli verwenden Ihre Anwendung Bootstrap - nächste XML-Parser kommt bereits mit Projektinstallation.

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

So brauchen Sie keine zusätzliche Module für diese hinzuzufügen. Da es klassische Commonjs Modul ist - müssen Sie require es zu importieren verwenden:

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

So Ihr Code kann wie folgt aussieht:

let parseString = require('xml2js').parseString; 
let xml = "<root>Hello xml2js!</root>" 

parseString(xml, function (err, result) { 
    console.dir(result); 
}); 

Sie nächste Ausgabe erhalten:

enter image description here

In allen Fällen - wenn Sie nicht angle-cli verwenden oder Ihr bevorzugtes Modul zum Parsen von xml verwenden möchten - verwenden Sie require, um es zu laden.

+0

Ich habe einen Fehler bei der Verwendung von "let". – biff

+0

Verwenden Sie 'var' anstelle von' let' dann. Sie verwenden in Ihrem Projekt kein Typoskript/es6? – VadimB

+0

ya ich habe es ... ich habe noch einen Zweifel, wie kann ich auf Daten von den Knoten zugreifen – biff

0

Bis heute hat der vorgeschlagene Code in anderer Antwort (die node-xml2js vorschlägt) nicht funktioniert. Statt:

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

I verwendet:

import { parseString } from 'xml2js'; 

Der restliche Teil in Ordnung war. Angular-cli verwendet.