| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

22-10-2009, 12:08
|
|
Gunah
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 87
|
|
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
|

22-10-2009, 12:14
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
|

22-10-2009, 12:16
|
|
Gunah
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 87
|
|
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; }
Geändert von Gunah (22-10-2009 um 12:36 Uhr)
|

22-10-2009, 14:06
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
das ist aber kein XML was da raus kommt. Das Element sollte besser item heißen und ein key-Attribut bekommen.
Gruß,
Amica
|

22-10-2009, 14:13
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
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 …
|

22-10-2009, 14:14
|
|
Gunah
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 87
|
|
wie geschrieben es ist nur ein Entwurf, man muss ja nicht immer gleich alles aufblättern ;-)...
|

22-10-2009, 14:24
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Ich sehe auch grade, dass der eigentlich gar nicht laufen dürfte
|

22-10-2009, 14:24
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
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>
Geändert von AmicaNoctis (22-10-2009 um 14:33 Uhr)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|