Cyrro: XML-Dateien auslesen

Hallo,

ich möchte eine XML-Datei auslesen und deren Inhalte in eien Datenbank schreiben. Unter anderem soll folgende XML-Datei ausgelesen werden: http://camelot-europe.goa.com/herald/servers/Logres/guilds/guilds_alb.xml

Auszugsweise sieht diese Datei wie folgt aus:

<guild_list updated="10-07-2007 04:52:00">
<guild guild_id="1152" name="Umbra Leonem" rp="253580676" lastrp="829231" members="24" persos="65" server="Logres" leader="0"/>
<guild guild_id="66" name="Knights of Arctic Circle" rp="242264988" lastrp="1565212" members="31" persos="81" server="Logres" leader="0"/>
<guild guild_id="2196" name="Bloody Wings" rp="200688429" lastrp="2002658" members="27" persos="77" server="Logres" leader="1"/>
</guild_list>

Ich lese die Datei mit folgendem Befehl aus: $inhalt = simplexml_load_file('http://camelot-europe.goa.com/herald/servers/Logres/guilds/guilds_alb.xml');

Das Problem, welches ich habe: Ich bekomme den Inhalt von $inhalt nicht auseinandergefieselt - ich habe da alles Mögliche schon probiert. Hat jemand bitte eine Idee, wie ich die einzelnen Elemente (also guild_id, name, server etc.) aus $inhalt extrahieren kann um sie dann in eine Datenbank zu schreiben?

Danke im Voraus für eure Hilfe,

Cyrro

  1. Hallo,

    Das Problem, welches ich habe: Ich bekomme den Inhalt von $inhalt nicht auseinandergefieselt - ich habe da alles Mögliche schon probiert. Hat jemand bitte eine Idee, wie ich die einzelnen Elemente (also guild_id, name, server etc.) aus $inhalt extrahieren kann um sie dann in eine Datenbank zu schreiben?

    Was hast du denn probiert? Hier schon mal nachgelesen? Du kannst ja auch mal hier nachlesen. Eine andere Möglichkeit XML-Dateien zu handhaben.

    Gruß,
    Leeloo

    --
    "Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra
    1. Da ich die XML-Datei mit dem Befehl simplexml_load_file() einlese, fehlt mir ja folgendes in der XML-Datei: $xmlstr = <<<XML
      Auf das bezieht sich ja der Folgecode in deinem Link.

      Was ich z.B. probiert habe:
      $inhalt = simplexml_load_file('http://camelot-europe.goa.com/herald/servers/Logres/guilds/guilds_alb.xml');
      echo $inhalt->guild->name;
      Es wird nichts angezeigt.

      Langsam verzweifle ich :-)

      1. hi,

        Da ich die XML-Datei mit dem Befehl simplexml_load_file() einlese, fehlt mir ja folgendes in der XML-Datei: $xmlstr = <<<XML
        Auf das bezieht sich ja der Folgecode in deinem Link.

        Ob du das XML nun aus einem Textliteral, oder aus einer Datei/Ressource einliest, ist vollkommen belanglos.
        Du musst dir die _Struktur_ klarmachen.

        Was ich z.B. probiert habe:
        $inhalt = simplexml_load_file('http://camelot-europe.goa.com/herald/servers/Logres/guilds/guilds_alb.xml');
        echo $inhalt->guild->name;
        Es wird nichts angezeigt.

        print_r oder var_dump zeigen dir, wie $inhalt aufgebaut ist.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hallo,

          print_r oder var_dump zeigen dir, wie $inhalt aufgebaut ist.

          Ja, das funktioniert auch. Da bekomme ich dann das:

          SimpleXMLElement Object
          (
              [@attributes] => Array
                  (
                      [updated] => 10-07-2007 08:51:51
                  )

          [guild] => Array
                  (
                      [0] => SimpleXMLElement Object
                          (
                              [@attributes] => Array
                                  (
                                      [guild_id] => 1152
                                      [name] => Umbra Leonem
                                      [rp] => 253580676
                                      [lastrp] => 829231
                                      [members] => 24
                                      [persos] => 65
                                      [server] => Logres
                                      [leader] => 0
                                  )

          )

          [1] => SimpleXMLElement Object
                          (
                              [@attributes] => Array
                                  (
                                      [guild_id] => 66
                                      [name] => Knights of Arctic Circle
                                      [rp] => 242267948
                                      [lastrp] => 1568172
                                      [members] => 31
                                      [persos] => 81
                                      [server] => Logres
                                      [leader] => 0
                                  )

          )
          [.... geht noch viel weiter]

          Mein Problem ist es jetzt, guild_id, name, rp usw. auszulesen um das dann weiterzuverarbeiten. Irgendwie hängts bei mir im Moment gewaltig denn alles was ich ausprobiere bringt einfach Null Erfolg.

          1. hi,

            Mein Problem ist es jetzt, guild_id, name, rp usw. auszulesen um das dann weiterzuverarbeiten.

            Die Struktur kannst du mit der vergleichen, die in den Beispielen im Manual verwendet wird. Und den Zugriff in den Beispielen dann wiederum auf deine Struktur übertragen ...

            Irgendwie hängts bei mir im Moment gewaltig denn alles was ich ausprobiere bringt einfach Null Erfolg.

            Dann wirst du wohl mal ein bisschen Denkarbeit in das Nachvollziehen und Verstehen der Beispiele investieren müssen.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }