Simple XML

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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.

      Comment


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

        Shitstorm Podcast – Wöchentliches Auskotzen

        Comment


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

          Comment


          • #6
            es kommt keine Fehlermeldung, einfach nichts

            Comment


            • #7
              Was sagt denn

              print_r ( $xml );

              ?

              Comment


              • #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
                Last edited by lordpom; 10-01-2008, 07:20.

                Comment


                • #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

                  Comment


                  • #10
                    funktioniert perfekt, danke

                    Comment

                    Working...
                    X