Array in eine XML Dateibringen...

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

  • 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

    Comment


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

      Last edited by Gunah; 22-10-2009, 11:36.

      Comment


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

        Comment


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

          Comment


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

            Comment


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

              Shitstorm Podcast – Wöchentliches Auskotzen

              Comment


              • #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>
                Last edited by AmicaNoctis; 22-10-2009, 13: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]

                Comment

                Working...
                X