Array in eine XML Dateibringen...

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

  • Array in eine XML Dateibringen...

    Moin,

    ich habe gerade folgendes Problem, dieses wäre ,

    Versuchen einen array, der mehrere ebenen hat in eine XML Datei zu packen...
    habe mir einpaar Scripte aus dem Netz angeguckt, die bearbeiten, aber per foreach nur eine ebene... ich muss es aber rekursiv haben.
    sprich falls vorhanden auch noch die anderen ebenen ;-)...

    Um es noch schwerer zumachen, es muss auf PHP4 (min. 4.4) laufen, und auf PHP5 (und größer)

    Gruß
    Gunah

  • #2
    Google ist dein Freund.
    z.B. PHP Array to XML - Google-Suche

    Kommentar


    • #3
      thx xD...

      habe mehrere Varianten bei Google eingeben aber diese eben nicht :-/

      ich sollte jetzt lieber wieder ins Bett gehen :-/
      ....

      EDIT:// 1
      habe einfach mal mein Hirn aus dem Standby geholt und nach gedacht, hier mein erster Entwurf... der sollte noch überarbeitet werden, falls der key mal Sonderzeichen usw. enthält ;-)

      für alle Suchenenden

      PHP-Code:
      $array = array(
              
      'wert' => 1,
              
      'array' => array(
                  
      1,2,3,4,5,5,6,7,
              ),
      );

      echo 
      array2xml($array);

      /* ;-) */
      function array2xml ($array = array())
      {
          
      $all '';
          foreach(
      $array as $key => $value)
          {
              
      $all .= '<'.$key.'>';
              if( !
      is_array($value) )
              {
                  
      $all .= $value;
              }
              else
              {
                  
      $all .= array2xml($value);
              }
              
      $all .= '</'.$key.'>' "\n";
          }

          return 
      $all;

      Zuletzt geändert von Gunah; 22.10.2009, 12:36.

      Kommentar


      • #4
        Hallo,

        das ist aber kein XML was da raus kommt. Das Element sollte besser item heißen und ein key-Attribut bekommen.

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Naja, es ist schon XML was rauskommt … Wie man es aufbaut ist einem ja selbst überlassen. Ich würde aber zusätzlich prüfen, ob der Key überhaupt 1:1 zu einem Element umgewandelt werden kann …
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            wie geschrieben es ist nur ein Entwurf, man muss ja nicht immer gleich alles aufblättern ;-)...

            Kommentar


            • #7
              Ich sehe auch grade, dass der eigentlich gar nicht laufen dürfte
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Ja, ok, aber den finde ich im Ansatz schon unzureichend. Damit mein Meckern aber noch etwas konstruktive Substanz bekommt, hier von mir noch eine Composite DTD, mit der du alles abbilden kannst, sogar Referenzen innerhalb von Arrays:

                Code:
                <!ELEMENT obj (obj|attr|ref)*>
                <!ATTLIST obj
                	name CDATA #REQUIRED
                	type CDATA #REQUIRED
                	guid CDATA #REQUIRED
                >
                
                <!ELEMENT attr (#PCDATA)>
                <!ATTLIST attr
                	name CDATA #REQUIRED
                	type CDATA #REQUIRED
                >
                
                <!ELEMENT ref (#PCDATA)>
                <!ATTLIST ref
                	name CDATA #REQUIRED
                >
                Edit: so sähe dann das XML-Dokument für dein Beispiel aus:

                HTML-Code:
                <obj name="" type="array" guid="4ae04fff2625d">
                	<attr name="wert" type="int">1</attr>
                	<obj name="array" type="array" guid="4ae05033d59fb">
                		<attr name="0" type="int">1</attr>
                		<attr name="1" type="int">2</attr>
                		<attr name="2" type="int">3</attr>
                		<attr name="3" type="int">4</attr>
                		<attr name="4" type="int">5</attr>
                		<attr name="5" type="int">5</attr>
                		<attr name="6" type="int">6</attr>
                		<attr name="7" type="int">7</attr>
                	</obj>
                </obj>
                Zuletzt geändert von AmicaNoctis; 22.10.2009, 14:33.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar

                Lädt...
                X