Simple XML

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

  • Simple XML

    Hallo

    Ich habe die Aufgabe bekommen die Daten einer Solaranlage auszuwerten. Kann mir jemand erklären wie man aus Folgendem XML File die Werte der einzelnen Rec Tag auszugeben?

    z.B:
    Datum: 2008-01-09 10:04:13
    temp_lt_1: 23.00
    wr_e_day: 0.00
    wr_e_month: 10.00
    wr_e_tot: 66.00
    wr_e_year: 10.00
    wr_f_netz: 49.98
    ....

    Ich würde gerne jeden rec Tag in eine Zeile einer Tabelle speichern.
    Wie das funktioniert weiss ich, aber mit dem XML habe ich Probleme.

    PHP-Code:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.solarmaxportal.com/xml/maxweb2007.xsd">
    <identif>
    <name>SolarMax GBC Chur</name>
    <id>100168</id>
    <id2>40168</id2>
    <ts>2008-01-09 10:15:02</ts>
    </identif>
    <t_vals>
    <rec>
    <ts>2008-01-09 10:04:13</ts>
    <dev id="1" temp_lt_1="23.00" wr_e_day="0.00" wr_e_month="10.00" wr_e_tot="66.00" wr_e_year="10.00" wr_f_netz="49.98" wr_iac_l1="1.07" wr_idc="0.80" wr_pac="141.00" wr_prel="4.00" wr_uac_l1="221.90" wr_udc="211.40" />
    </rec>
    <rec>
    <ts>2008-01-09 10:09:13</ts>
    <dev id="1" temp_lt_1="23.00" wr_e_day="0.10" wr_e_month="10.00" wr_e_tot="66.00" wr_e_year="10.00" wr_f_netz="49.98" wr_iac_l1="1.07" wr_idc="0.84" wr_pac="150.00" wr_prel="5.00" wr_uac_l1="223.40" wr_udc="211.40" />
    </rec>
    <rec>
    <ts>2008-01-09 10:14:13</ts>
    <dev id="1" temp_lt_1="23.00" wr_e_day="0.10" wr_e_month="10.00" wr_e_tot="66.00" wr_e_year="10.00" wr_f_netz="49.98" wr_iac_l1="1.11" wr_idc="0.84" wr_pac="150.00" wr_prel="5.00" wr_uac_l1="224.60" wr_udc="211.40" />
    </rec>
    </t_vals>
    </root>
    Ich habe es mit SimpleXML versucht, aber ich komme nicht an die Werte des rec Tag. Hoffentlich kann mir jemand helfen.

    Vielen Dank im Vorraus

    Gruss pom

  • #2
    *alteleieranschmeiß* Wie sehen deine Ansätze aus ...?!
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Ich habe mehrere Beispiele ausprobiert, z.B.:

      Dies funktioniert, ist aber auch 100% ein Beispiel.

      PHP-Code:
      <?php
       
      if (file_exists('test.xml')) {
      $xml simplexml_load_file('test.xml');
       
      echo 
      $xml->teaser[0];
       
      } else {
      exit(
      'Konnte Datei nicht laden.');
      }
      ?>


      <?xml version="1.0" encoding="ISO-8859-1" ?>
      <artikel>
      <titel>Der Titel</titel>
      <teaser>Der Teaser, eine kurze Beschreibung</teaser>
      <inhalt>Der Artikelinhalt an sich</inhalt>
      </artikel>

      Hier gehts nicht, ist aber das Gleiche, oder?

      PHP-Code:
      <?php
       
      if (file_exists('maxweb.xml')) {
      $xml simplexml_load_file('maxweb.xml');
       
      echo 
      $xml->name[0];
       
      } else {
      exit(
      'Konnte Datei nicht laden.');
      }
      ?>

      <?xml version="1.0" encoding="ISO-8859-1"?>
      <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.solarmaxportal.com/xml/maxweb2007.xsd">
      <identif>
      <name>SolarMax GBC Chur</name>
      <id>100168</id>
      <id2>40168</id2>
      <ts>2008-01-09 10:15:02</ts>
      </identif>
      <t_vals>
      <rec>
      <ts>2008-01-09 10:04:13</ts>
      <dev id="1" temp_lt_1="23.00" wr_e_day="0.00" wr_e_month="10.00" wr_e_tot="66.00" wr_e_year="10.00" wr_f_netz="49.98" wr_iac_l1="1.07" wr_idc="0.80" wr_pac="141.00" wr_prel="4.00" wr_uac_l1="221.90" wr_udc="211.40" />
      </rec>
      <rec>
      <ts>2008-01-09 10:09:13</ts>
      <dev id="1" temp_lt_1="23.00" wr_e_day="0.10" wr_e_month="10.00" wr_e_tot="66.00" wr_e_year="10.00" wr_f_netz="49.98" wr_iac_l1="1.07" wr_idc="0.84" wr_pac="150.00" wr_prel="5.00" wr_uac_l1="223.40" wr_udc="211.40" />
      </rec>
      <rec>
      <ts>2008-01-09 10:14:13</ts>
      <dev id="1" temp_lt_1="23.00" wr_e_day="0.10" wr_e_month="10.00" wr_e_tot="66.00" wr_e_year="10.00" wr_f_netz="49.98" wr_iac_l1="1.11" wr_idc="0.84" wr_pac="150.00" wr_prel="5.00" wr_uac_l1="224.60" wr_udc="211.40" />
      </rec>
      </t_vals>
      </root>
      Vielleicht ist auch etwas am XML file falsch, isch weiss es nicht, aber
      der einfachste befehl funktioniert schon nicht.

      Kommentar


      • #4
        Und was wird ausgegeben?!
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          Hast du es schon einmal mit dem ts wert vom ersten rec satz probiert?
          Webdesign und Webentwicklung - Plunix.de

          Kommentar


          • #6
            es kommt keine Fehlermeldung, einfach nichts

            Kommentar


            • #7
              Was sagt denn

              print_r ( $xml );

              ?

              Kommentar


              • #8
                SimpleXMLElement Object
                (
                [identif] => SimpleXMLElement Object
                (
                [name] => SolarMax GBC Chur
                [id] => 100168
                [id2] => 40168
                [ts] => 2008-01-09 10:15:02
                )

                [t_vals] => SimpleXMLElement Object
                (
                [rec] => Array
                (
                [0] => SimpleXMLElement Object
                (
                [ts] => 2008-01-09 10:04:13
                [dev] => SimpleXMLElement Object
                (
                [@attributes] => Array
                (
                [id] => 1
                [temp_lt_1] => 23.00
                [wr_e_day] => 0.00
                [wr_e_month] => 10.00
                [wr_e_tot] => 66.00
                [wr_e_year] => 10.00
                [wr_f_netz] => 49.98
                [wr_iac_l1] => 1.07
                [wr_idc] => 0.80
                [wr_pac] => 141.00
                [wr_prel] => 4.00
                [wr_uac_l1] => 221.90
                [wr_udc] => 211.40
                )

                )

                )
                ...

                funktioniert also doch, aber warum zeigt es denn
                echo $xml->name; oder echo $xml->name[0]; nicht an?

                Eigentlich möchte ich auf das "ts" und "dev" des jeweiligen rec in eine tabelle oder so schreiben
                Zuletzt geändert von lordpom; 10.01.2008, 08:20.

                Kommentar


                • #9
                  Du musst doch jetzt nur noch durch das Objekt marschieren, so wie print_r die Struktur dargestellt hat.

                  $xml->identif->name

                  bzw.

                  $xml->t_vals->rec[0]->ts
                  $xml->t_vals->rec[0]->dev->id

                  Ist so aus der Ferne immer etwas schwer, aber so in der Art müsste es klappen...

                  Njord

                  Kommentar


                  • #10
                    funktioniert perfekt, danke

                    Kommentar

                    Lädt...
                    X