2016-08-04 9 views
2

Muss ich mein XML analysieren, um die Daten aus dem XML in den HTML-Code zu rendern? Ich erhalte derzeit eine lokale .xml-Datei unter Verwendung der http.get Anfrage und im Konsolenprotokoll, das alle Informationen zeigt, die in der xml-Datei sind, denke ich, dass es gerade es liest.Analysieren von XML in angular2, um in der Ansicht gerendert zu werden

Frage ist, wie man xml in json Format in angular2 umwandelt?

versuchte ich die console.log(data.title) aber das ist mir als unidentified unter

var parser = new DOMParser(); 
xmlData = parser.parseFromString(data, "application/xml"); 
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> 

Mit der Antwort der Rückkehrconsole.log des obigen Codes:

enter image description here

Zeit für Schleife macht die geparsten xml, aber meiner Meinung nach iterieren seines gibt mir nur ein Objekt. ngFür iteriert nur Objekte, die sich in einem Array befinden.

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); 
      } 

Ansicht:

<li>{{ title }}</li> 
+0

Was passiert, wenn Sie geben, 'console.log (Daten [0] .title)' –

+0

wenn ich Daten [0] es nur zeigt mir nCore

Antwort

1

können Sie verwenden DOMParser

Sie einfach Ihre Daten Variable DOMParser passieren, dann können Sie Elemente zugreifen, indem Referenz

Beispiel

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

Ich trage log xmlData und es gibt mir ein JSON-Format, aber xml Zeug ist verschachtelt in #Dokument und konnte nicht auf die Elemente wie Titel, longDesc zugreifen, wenn ich xmlData.title oder longDesc – nCore

+0

können Sie mir Ihre console.log Ergebnisse zeigen bitte – joshualawson

+0

siehe meine Bearbeitung in meinem Beitrag oben, das ist immer noch ein XML nicht Json Fomat. Wirklich wollen Sie vermeiden, für jedes in jedem Tag zu tun, nur um es zurückzugeben. – nCore