Ankündigung

Einklappen
Keine Ankündigung bisher.

XML mittels explode zerlegen

Einklappen

Neue Werbung 2019

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

  • XML mittels explode zerlegen

    Hallo,

    hab mich gestern das erste mal mit XML beschäftigt. Hier meine XML Datei

    Code:
    <image>
    <filename>Bild_132.jpg</filename>
    </image>
    <image>
    <filename>Bild_125.jpg</filename>
    </image>
    Dieses XML möchte ich nun mittels PHP so zerlegen das ich jede <filename>-Instanz einzeln ansprechen kann. Erstmal gebe ich jede <filename>-Instanz einzeln aus;

    PHP-Code:
      $doc = new DOMDocument();
      
    $doc->load'gallery.xml' );
      
      
    $images $doc->getElementsByTagName"image" );
      foreach( 
    $images as $image )
      {
      
    $filenames $image->getElementsByTagName"filename" );
      
    $filename $filenames->item(0)->nodeValue;
      
      
      echo 
    "$filename\n<br>"
    Jetzt möchte ich das ganze mittels explode zerlegen;

    PHP-Code:
    $zerlegen '\n'.$filename;
    $array explode('\n'$test);  
    print_r($array); 
    meine Ausgabe soll so aussehen;

    Code:
    $array[0] = 'Bild_132.jpg';
    $array[1] = 'Bild_125.jpg';
    Nur klappt das nicht... was mache ich falsch?


  • #2
    Versteh ich nicht. Du kannst doch sowohl via Dom, als auch via SimpleXML jeden einzelne Filename direkt ansprechen. Wozu der Rest?

    Gruß Jens

    Kommentar


    • #3
      Entwirre deine Knoten. Statt echo "$filename\n<br>" kannst du die Dateinamen genausogut sofort in ein Array speichern. Damit fällt das potentielle Explode weg und deine Gedankensperre fällt ebenso weg.
      www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
      Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih

      Kommentar


      • #4
        ist schonmal super zu wissen das es geht - und das sogar noch einfacher - nur finde ich nichts dazu "wie"? Aus dem Manual werd ich einfach nicht schlau... vielleicht liegt es daran das ich das erste mal mit XML arbeite

        Kommentar


        • #5
          Das hat mir XML absolut nichts zu tun. Du gibst bei deinem obigen Beispiel etwas aus (echo). Statt es auszugeben, muss es in eine Variable. http://www.php.de/php-einsteiger/489...rundlagen.html
          www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
          Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih

          Kommentar


          • #6
            Deinem "xml" fehlt zuallererst schon mal ein Root-Knoten. Desweiteren wurde ja bereits auf DOM und die anderen XML-Zugriffsmethoden hingewiesen: XML ist ein standardisiertes Format, das man auch mit den zugehörigen Mitteln verarbeiten sollte. Sonst hast Du nichts gewonnen.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Hallo Zusammen,

              vielen Dank für eure Hilfe. Ein bisschen Nachdenken hat zur richtigen Lösung geführt So sieht jetzt mein XML aus;

              Code:
              <image>
              <id>0</id>
              <filename>Bild_0.jpg</filename>
              <caption></caption>
              </image>
              <image>
              <id>1</id>
              <filename>Bild_1.jpg</filename>
              <caption></caption>
              </image>
              <image>
              <id>2</id>
              <filename>Bild_2.jpg</filename>
              <caption></caption>
              </image>
              und so meine Ausgabe - um z.B. den Wert der letzten <filename>-Instanz auszugeben;

              PHP-Code:
              $xml simplexml_load_file('gallery.xml');    

              echo 
              $xml->image[2]->filename
              Naja, jetzt stellen sich mir aber schon wieder die nächsten Fragen

              Die XML-Datei stellt praktisch die Datenbank/Referenz für eine Flash Galerie dar. <filename> beinhaltet die Dateinamen der Bilder.

              Um nun Bilder austauschen oder löschen zu können benötige ich ein Formular, welches sämtliche in der XML-Datei vorhandene Bilder vom Server holt und Grafisch darstellt.

              Nun stelle ich mir das vor wie eine sql Abfrage... ich müsste praktisch jeden Eintrag in der XML Datei seperat verarbeiten können - nur wie ohne Schleife

              Kommentar


              • #8
                Kannst Du doch. Was hindert Dich dran, eine Schleife zu erstellen? Schau Dir mal Beispiel #4 im Manual an

                Gruß Jens

                Kommentar

                Lädt...
                X