Powl: 2D Array - xml Parsen

Hallo,

eine Frage zum systematischen Vorgehen hätte ich gerne beantwortet. Es geht um folgendes:
Nach dem Parsen eines xml-Dokumentes habe ich html-code in einem String stehen.
Diesen String möchte ich in ein 2-dimensionales Array umwandeln. Der html-code wäre etwas so:

  
<div id="id1"  
  <dl>  
     <dt id="id1_1">EinsEins</dt>  
     <dd>text</dd>  
     <dt id="id1_2">EinsZwei</dt>  
     <dd>text</dd>  
  </dl>  
</div>  
<div id="id2"  
  <dl>  
     <dt id="id2_1">ZweiEins</dt>  
     <dd>text</dd>  
     <dt id="id2_2">ZweiZwei</dt>  
     <dd>text</dd>  
  </dl>  
</div>  

Das soll dann so im Array erscheinen:

  
array[id1][0] = "<div id="id1" <dl>";  
array[id1][1] = "<dt id="id1_1">EinsEins</dt>  <dd>text</dd>";  
array[id1][2] = "<dt id="id1_2">EinsZwei</dt> <dd>text</dd> </dl></div>";  
array[id2][0] = "<div id="id2" <dl>";  
array[id2][1] = "<dt id="id2_1">ZweiEins</dt>  <dd>text</dd>";  
# und so weiter  

Im Moment mache ich es etwa so:
mittels preg_replace das Suchmuster id* durch %Trennzeichen id* ersetzen und mit
explode %Trennzeichen in ein array schreiben.
Dann gehe ich mit foreach das array durch und übertrage es in ein zweites, etwa so
mit preg_match id* zurückgeben lassen und dann:$array[id*] = $temp_array[$k];
Dann weiter das Suchmuster id*_* suchen und durch %Trennzeichen id*_* ersetzen und nochmal  mit foreach array[id*] am Trennzeichen explodieren lassen (Ziemliche Knallerei, aber ist ja bald Sylvester ;) )
Dann erhielte ich doch ein 2D Array, wie es oben als Beispiel angerissen ist, wenn ich mich nicht irre.

Ich frage mich bloß, ob das so umständlichen sein muss? Ich habe schon versuche in der Parserklasse direkt das 2D Array zu konstruieren, komme damit aber gar nicht klar. Die Parserklasse beruht im
Wesentlichen auf diesem Code. Ich weiss nicht mehr genau was ich Versucht habe, aber mein Problem bestand darin, daß der Arraykey sich nicht hochzählen ließ, sondern immer das gleich Element überschrieben wurde.
Sachdienliche Hinweise nehme ich mir grosser Freude entgegen ;)

netten Tag
^da Powl

--
===============================
powl.hat-gar-keine-homepage.de/
  1. Lieber Powl,

    Nach dem Parsen eines xml-Dokumentes habe ich html-code in einem String stehen.

    ist das wirklich so sinnvoll? Warum parst Du Dein XML-Dokument nicht in ein Array?

    Also ich verwende eine XML-Parserklasse, die das XML-Dokument in ein Array umwandelt, um aus diesem Array dann mein eigentliches Array zu erzeugen. In meinem GB-Script findest Du sowohl diese Parserklasse (nicht von mir, aber von mir modifiziert), als auch die "Umwandlung" meiner XML-Daten in das von mir benötigte assoziative Array.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. Hallo Felix,

      Das werde ich mir mal genauer ansehen, danke für den Hinweis. Was mir im Moment noch abgeht ist der Sinn von $bytes_to_parse?

      netten Tag
      ^da Powl

      --
      ===============================
      powl.hat-gar-keine-homepage.de/
      1. Lieber Powl,

        Was mir im Moment noch abgeht ist der Sinn von $bytes_to_parse?

        aus welchem Zusammenhang zitierst Du diese Variable?

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        1. Hallo,

          xml-parser-klasse-script.inc
          Zeile 40

          netten Tag
          ^da Powl

          --
          ===============================
          powl.hat-gar-keine-homepage.de/
          1. Lieber Powl,

            xml-parser-klasse-script.inc

            OK. Also der XML-Parser von PHP nimmt sich so ein XML-Dokument nicht auf einen Rutsch vor, denn es könnte sich dabei ja um eine Datei von einer Größe handeln, die den verfügbaren Arbeitsspeicher empfindlich belastet. Von daher verleibt er sich den XML-Code häppchenweise ein.

            Ich hatte dabei festgestellt, dass bei einer bestimmten XML-Datei seltsame Fehler auftraten, die aber sofort behoben waren, als ich die Häppchengröße auf 64Kb erhöhte.

            Wenn Du in den User-Comments in der Doku auf php.net nachschaust, dann findest Du die Quelle meiner Parserklasse. Der ursprüngliche Autor hat sich über meine Modifikation sogar gefreut...

            Liebe Grüße aus Ellwangen,

            Felix Riesterer.