mikrocontroller.net

Forum: PC-Programmierung XML mit Javascript


Autor: Marci K. (kingloui)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Andi ... (xaos)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Marci K. (kingloui)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.