Mit JavaScript YAML oder XML einlesen / parsen

... komplette Frage anzeigen

2 Antworten

Tut mir leid, aber ich kann mit deiner Antwort nichts anfangen, da eine HTA ja auf dem Client läuft, und Ajax nur auf Servern funktioniert (oder irre ich mich da?). Aber trotzdem danke.

Ich habe die Lösung aber auch schon selber gefunden, zumindest für XML. Ich hab nämlich noch so ein JavaScript-Buch im Regal stehen, und hab dort einfach mal 'nen Blick reingeworfen. Und da entdeckte ich das:

function newDocIE(xml) {
  var doc = new ActiveXObject("MSXML2.DOMDocument");
  doc.loadXML(xml);
  return doc;
}

Wenn ich diesen Code ein bisschen modifiziere und der Funktion den Inhalt der XML-Datei übergebe, bekomme ich brauchbare Daten zurück.

Antwort bewerten Vielen Dank für Deine Bewertung

Ich habe folgendes gefunden aber nicht getestet:

<html>

<body>

<script type="text/javascript">

    var req = new XMLHttpRequest();

    req.open('GET', 'adressbuch.xml', true);
    req.onreadystatechange = function() 
    {
        if (req.readyState === 4) 
        {
            var doc = req.responseXML;

            // entries! vs entry!
            var entries = doc.getElementsByTagName('eintrag');



            var ul = document.createElement('table');

                for (var i = 0, l = entries.length; i < l; i++) 
                {
                    // entry! vs entries!
                    var entry = entries[i];

                    var vnEl = entry.getElementsByTagName('vorname')[0];                    
                    var naEl = entry.getElementsByTagName('nachname')[0];
                    var streetEl = entry.getElementsByTagName('strasse')[0];
                    var ortEl = entry.getElementsByTagName('ort')[0];

                    var li = document.createElement('li');


                    li.appendChild(document.createTextNode
                    (
                        (vnEl.textContent ? vnEl.textContent : vnEl.text) 
                        +
                        (naEl.textContent ? naEl.textContent : naEl.text) 
                        + 
                        '; '
                        +
                        (streetEl.textContent ? streetEl.textContent : streetEl.text) 
                        + 
                        ' '
                        + 
                        streetEl.getAttribute('nr') 
                        + 
                        '; '  
                        + 
                        ortEl.getAttribute('plz')
                        +                       
                        (ortEl.textContent ? ortEl.textContent : ortEl.text) 
                        +
                        ' ;'


                    ));

                    ul.appendChild(li);
                }
            document.body.appendChild(ul);
        }
    };

 req.send(null);

</script> 


</body>
</html>
Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?