Forum: PC-Programmierung XML mit Javascript


von Marci K. (kingloui)


Lesenswert?

hi ich habe ein kleines Problem kenn mich aber mit javascript nich gut 
genug aus um auf den fehler zu kommmen.
Ich verwende folgenden code zum auslesen eines XML-files und speicher 
die werte in einem Array mit dem namen "werte"

//Variablendeklarationen
var http = null;
werte = new Array();
//Browsercheck:
if (window.XMLHttpRequest)
{
   http = new XMLHttpRequest();
} else
if (window.ActiveXObject)
{
   http = new ActiveXObject("Microsoft.XMLHTTP");
}
window.onload = function()
{
   if (http != null)
   {
      http.open("GET", "werte.xml", true);
      http.onreadystatechange = auslesen;
      http.send(null);
   }
}

//Werte auslesen
function auslesen()
{
   if (http.readyState == 4)
   {
      var daten = http.responseXML;
      var aktw = daten.getElementsByTagName("aktwerte");
      for (var i = 0; i < aktw.length; i++)
      {
         var erg = aktw[i];
         for (var j = 0; j < erg.childNodes.length; j++)
         {
            with (erg.childNodes[j])
            {
               if (nodeName == "temperatur")
               {
                  werte[0] = firstChild.nodeValue;

               }
               if (nodeName == "feuchtigkeit")
               {
                  werte[1] = firstChild.nodeValue;

               }
               if (nodeName == "luftdruck")
               {
                  werte[2] = firstChild.nodeValue;

               }
               if (nodeName == "windgeschwindigkeit")
               {
                  werte[3] = firstChild.nodeValue;

               }
               if (nodeName == "windrichtung")
               {
                  werte[4] = firstChild.nodeValue;

               }
               if (nodeName == "sonneneinstrahlung")
               {
                  werte[5] = firstChild.nodeValue;

               }
            }
         }
      }
      var maxw = daten.getElementsByTagName("maxwerte");
      for (var i = 0; i < aktw.length; i++)
      {
         var maxerg = maxw[i];
         for (var j = 0; j < maxerg.childNodes.length; j++)
         {
            with (maxerg.childNodes[j])
            {
               if (nodeName == "temperatur")
               {
                  werte[6] = firstChild.nodeValue;

               }
               if (nodeName == "feuchtigkeit")
               {
                  werte[7] = firstChild.nodeValue;

               }
               if (nodeName == "luftdruck")
               {
                  werte[8] = firstChild.nodeValue;

               }
               if (nodeName == "windgeschwindigkeit")
               {
                  werte[9] = firstChild.nodeValue;

               }
               if (nodeName == "sonneneinstrahlung")
               {
                  werte[10] = firstChild.nodeValue;

               }
            }
         }
      }
      var minw = daten.getElementsByTagName("minwerte");
      for (var i = 0; i < minw.length; i++)
      {
         var minerg = minw[i];
         for (var j = 0; j < minerg.childNodes.length; j++)
         {
            with (minerg.childNodes[j])
            {
               if (nodeName == "temperatur")
               {
                  werte[11] = firstChild.nodeValue;

               }
               if (nodeName == "feuchtigkeit")
               {
                  werte[12] = firstChild.nodeValue;

               }
               if (nodeName == "luftdruck")
               {
                  werte[13] = firstChild.nodeValue;

               }
               if (nodeName == "windgeschwindigkeit")
               {
                  werte[14] = firstChild.nodeValue;

               }
               if (nodeName == "sonneneinstrahlung")
               {
                  werte[15] = firstChild.nodeValue;
               }
            }
         }
      }
      alert(werte);
      return werte;
   }
}


Allerdings wenn ich jetzt das array in der nächsten funktion verwenden 
möchte kann ich da keinen der werte abrufen.
Weiss jemand eine lösung?

MFG

: Verschoben durch Admin
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Allerdings wenn ich jetzt das array in der nächsten funktion verwenden
> möchte kann ich da keinen der werte abrufen.

Und was genau machst Du da wie?

von TestX .. (xaos)


Lesenswert?

kleiner tipp am rande...mach sowas nicht selber... nutze ein js framwork 
wie mootools, jquery oder prototype... das sind dann nur 5 zeilen und 
geht in jeden aktuellen browser...

von Marci K. (kingloui)


Lesenswert?

Kannst du mir das mal genauer erklären?

Ich möchte  einfach nur ein xml file auslesen in dem messwerte 
gespeichert werden und die in ein array schreiben da ich auf meiner html 
seite verschiedene werte an verschiedenen punkten brauche.

Wenn jemand eine andere möglichekit für das hat tbin ich gern offen das 
auszuprobieren bin halt in dem Thema Javascript absoluter neuling. Also 
fände ich eine einfache Möglichkeit nicht schlecht.

MFG

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.