php4 - foreach + xml klasse

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

  • php4 - foreach + xml klasse

    Hi,
    ich habe ein script geschrieben dass ich dringend ab php4+
    brauche, nur allerdings klappt es in php5 bisweilen.
    Eine Klasse hilft mir hierbei eine simpleXML ähnliche Syntax
    in php4 zu handhaben, leider werden bei der Klasse
    die CDATA Tags rausgeschmissen, und ich wollte das ganze
    mit ner simplen Funktion umgehen, da ich sowieso überall
    CDATA brauch, allerdings sind die Änderungen (bzw. das
    hinzufügen von den CDATA Tags) nicht außerhalb der
    foreach schleife gültig, zumindest in php4, in php5 gehts
    wiederum komischerweise, kann mir jemand verraten woran
    das liegt und wie ich das lösen könnte?

    Mein bisheriger Testversuch:
    PHP-Code:
        // XML INIT
        
    include "XMLParser.class.php";
        
    $xml file_get_contents('test.xml');
        
    $parser = new XMLParser($xml);
        
    $parser->Parse();
        
        
    // XML EDIT
        
    $parser->document->AddChild("newChild",array("attr1"=>"ab","attr2"=>"ce"),1);
        
        
    // CONVERT 2 CDATA
        
    function convert2CDATA($tagChilds)
        {
            foreach(
    $tagChilds as $value)
            {   
                
    $value->tagData="<![CDATA[".$value->tagData."]]>";
                
    convert2CDATA($value->tagChildren);
            }
        }
         
        
    convert2CDATA($parser->document->tagChildren);
        echo 
    $parser->GenerateXML();
        
        
    // SAVE XML
        
    $handle fopen("test.xml","w+");
        
    fwrite($handle,$parser->GenerateXML());
        
    fclose($handle); 
    Merci schon mal, Gruß, darki

  • #2
    Re: php4 - foreach + xml klasse

    Überlasse doch bitte das schöne Sprachkonstrukt des Schachtelsatzes Leuten, die damit halbwegs sinnvoll umgehen können.
    Dem Verständnis deiner Äusserungen dürfte es förderlicher sein, wenn du etwas weniger Kommata, und dafür mehr Punkte benutzt (unter entsprechender Anpassung der Satzstruktur bitte - nein, Suchen/Ersetzen allein hilft auch nicht weiter).


    Und zu deinem "bisherigen Testversuch" fehlt wieder mal jegliche sinnvolle Anmerkung und weiterführende Info.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Was soll ich denn noch schreiben? Hab doch schon alles geschrieben, wo ich mein Problem hab, und woran es liegt ebenso, soll ich vieleicht noch die Lösung für mich selber hinschreiben?

      Hier ist das Problem, wie auch schon im Satz beschrieben,
      auch wenns vieleicht etwas unverständlich war:
      $value->tagData="<![CDATA[".$value->tagData."]]>";

      Diese Änderung wird nur in php5 akzeptiert, außerhalb
      sowie innerhalb der for-schleife, bei php4 leider nur
      innerhalb der for-schleife, außerhalb davon geschieht
      keine Änderung.

      P.S. die komma's bleiben, schließlich ist das ja kein
      Deutsch-Grammatikforum

      Gruß darki
      Zuletzt geändert von darki777; 16.07.2007, 11:40.

      Kommentar


      • #4

        P.S. die komma's bleiben, schließlich ist das ja kein
        Deutsch-Grammatikforum
        Programmieren wollen und grammatik ablehnen?!? auch eine Programmiersprache hat ihre "grammatig"!

        Kommentar


        • #5
          PHP-Code:
          $value->tagData="<![CDATA[".$value->tagData."]]>"
          Steht doch im Code nirgendwo außerhalb der Schleife? Vielleicht versuchst du noch mal einen deutschen Satz zu formulieren so wie - "Ich versuche die Werte eines Arrays innerhalb einer foreach-Schleife zu bearbeiten. Das funktioniert nur unter PHP 5." - oder so.
          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

          Kommentar


          • #6
            Ich versuche die Werte eines Arrays innerhalb einer foreach-Schleife zu bearbeiten. Das funktioniert nur unter PHP 5."
            Ja, so meinte ich es auch, also wars doch nicht so unverständlich

            Steht doch im Code nirgendwo außerhalb der Schleife?
            Dann würde es aber auch nicht in PHP5 gehen, wenns so wäre, eigentlich verändere ich ja den Objektinhalt, bzw. das darin enthaltende Array.

            Wäre über nen kleinen Lösungsansatz dankbar.

            Viele Grüße darki

            Kommentar


            • #7
              Original geschrieben von darki777
              Wäre über nen kleinen Lösungsansatz dankbar.
              Mir ist immer noch nicht wirklich klar, was denn jetzt deine Frage bzw. dein Problem ist - man kann nach wie vor nur raten ...!

              Dann würde es aber auch nicht in PHP5 gehen, wenns so wäre, eigentlich verändere ich ja den Objektinhalt, bzw. das darin enthaltende Array.
              Also geht es dir darum, Array-Inhalte in einer foreach-Schleife auch gleich zu verändern? Wie das geht, per Reference, steht im Manual (für PHP 4 in den Nutzekommentaren IIRC).
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Danke Wahsaga, werd ich gelegentlich mal reinschaun, habs jetzt nun mittels einer ganz normalen for schleife gelöst, foreach geht komischerweise nicht, weis der geier wieso. Zumindest mit der XMLParser Klasse in Verbindung mit der foreach + PHP4.

                Danke für eure Geduld, Gruß, darki
                Zuletzt geändert von darki777; 17.07.2007, 08:31.

                Kommentar

                Lädt...
                X