Werte aus Datei aulesen und in Variablen speichern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Werte aus Datei aulesen und in Variablen speichern

    Hallo

    Ich möchte aus einer XML Datei Werte auslesen und diese wiederum in Variablen speichern um sie später anderweitig im Dokument verwenden zu können.

    Mir ist bewusst, dass PHP5 da scheinbar passende Funktionen für XML bereit hält doch bin ich momentan mehr an einer "altmodischen" Lösung interessiert da ja irgendwann auch mal eine Datei kommen könnte, die eben nicht im XML Format vorliegt.

    Aber nun zum eigentlichen Problem. In dieser XML Datei tummeln sich diverse Werte wie:

    <haus1>12,5</haus1>
    <haus2>24,7</haus2>
    <keller>429</keller>
    <garten>204,8</garten

    Ich möchte nun die Zahlenwerte herausholen (inkl. Komma) und in einer Variable oder vielleicht auch Array abspeichern bei dem ich wieder die Namen der Werte verwenden kann.
    Also z.b. $haus1 sollte dann den Wert 12,5 enthalten.

    Ich bin über jede Hilfe dankbar und freue mich vor allem über leicht verständliche und komapkte Code-Beispiele da ich mich mit der Materie noch nicht so sonderlich gut auskenne und mit Hinweisen auf einzelne Funktionen nicht viel anzufangen wüsste

    Über Lösung mittels PHP5 würde ich mich ebenso freuen doch ist dies erstmal zweitrangig

  • #2
    Ich find bei unter den begriffen "xml daten in php" ne ganze
    menge, was Dir weiterhelfen könnte.


    EDIT:
    ...und das HIER gibt auch ne menge her...

    Zuletzt geändert von hydrococcus; 21.05.2005, 16:45.

    Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

    Kommentar


    • #3
      Auf so eine nutzlose Antwort habe ich nur gewartet...

      Kommentar


      • #4
        Ich sag ganz ehrlich, das ich von xml nur sehr wenig Ahnung habe.
        Aber ich habe mir, auf Anregung durch Deinen Post, die Mühe
        gemacht bei google und unter der Suchfunktion des Forums
        mal nachzuschauen was es zum Thema XML und PHP gibt.

        Wenn Du also der meinung bist, das meine Antwort nutzlos war,
        dann ignoriere beide Vorschläge weiter und warte, bis Dir jemand
        die Lösung auf einem Tablett serviert. Schönen Tag noch...

        Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

        Kommentar


        • #5
          Ich hab nun nach zig Stunden Trial n Error zumindest schonmal das bronzene Tablett gefunden

          PHP-Code:
          <? 
          //Namen der XML Werte definieren
          $xmlnamen = array('Date', 'Time', 'Sensor1', 'Sensor2');

          //XML Dokument einlesen
          $xmldokument = domxml_open_file('test.xml');

          //Mit einer Schleife alle Werte auslesen und in einem assoziativen Array speichern
          for($i=0; $i<4; $i++)
          {
          $werte = $xmldokument->get_elements_by_tagname("$xmlnamen[$i]");
          foreach ($werte as $wert)
          {
          $xmlwerte[$i]=$wert->get_content();
          }
          $array[$xmlnamen[$i]]=$xmlwerte[$i];
          }

          //Gesamtes Array ausgeben
          print_r ($array);

          //Einzelnen Wert ausgeben
          echo $array['Date'];
          ?>
          Das silberne Tablett wäre nun wenn ich wüsste wich ich die Namen der Werte noch automatisch einlesen könnte statt sie am Anfang alle einzeln auflisten zu müssen.

          Kommentar


          • #6
            Original geschrieben von Shoggy
            Ich hab nun nach zig Stunden Trial n Error zumindest schonmal das bronzene Tablett gefunden
            du meinst wohl try and error >_>


            This extension makes use of the GNOME XML library.
            du weißt das? Ich würde eher PHP5 bei mir installieren als ne weitere Lib *schulter zuck*


            maybe? http://de3.php.net/manual/en/functio...hild-nodes.php
            and maybe? http://de3.php.net/manual/en/functio...hild-nodes.php
            and finally (for further information) http://de3.php.net/domxml

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Ich würde ja gerne PHP5 direkt nutzen nur funktioniert das nicht obwohl es angeblich bei meinem Webspace (Puretec) vorhanden ist.

              Phpinfo() bringt Version 4 zum Vorschein und eben auch dieses domxml Modul, was wohl momentan die einzige Möglichkeit ist ein wenig mit XML zu hantieren.

              Ob Trial oder Try - da kann man sich drüber streiten, bei Google gibt sich das nicht viel Wenn ich aber das 'and' ausschreibe ist Trial ganz klar vorne und so ist mir das eigentlich auch geläufig.

              Das mit den child-nodes habe ich schon entdeckt aber so wirklich schlau werde ich da noch nicht draus.

              ------------

              So, ich denke so langsam wird's.

              PHP-Code:
              <?
              //XML Dokument einlesen
              $xmldokument = domxml_open_file("test.xml");

              //Eltern und Kind Elemente festlegen
              $root = $xmldokument->document_element();
              $childs = $root->child_nodes();

              //Name und Wert auslesen und in einem assoziativen Array speichern
              foreach ($childs as $child)
              {
              $array[$child->tagname]=$child->get_content();
              }

              //Einen Wert des Array ausgeben
              echo $array['Sensor2'];
              ?>
              Zuletzt geändert von Shoggy; 22.05.2005, 01:43.

              Kommentar


              • #8
                Ich mag mich irren, aber müssen bei PureTec php-5 Files nicht auf .php5 enden?
                Hab keine Space bei Puretec, aber vielleicht machen die das so.

                Kommentar


                • #9
                  Besten dank, genau so funktioniert es

                  Dementsprechend durfte ich wieder ein wenig experimentieren aber dafür ist das jetzt wirklich schön kompakt:
                  PHP-Code:
                  <?
                  //XML Dokument einlesen
                  $xmldokument = simplexml_load_file('test.xml');

                  //Werte ermitteln
                  foreach ($xmldokument->LogData as $wert);

                  //Einzelnen Wert ausgeben
                  print $wert->Sensor1;
                  ?>

                  Kommentar


                  • #10
                    na, ob die zweite zeile so sinnvoll ist...

                    Kommentar

                    Lädt...
                    X