tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
479
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    scheibenwischer scheibenwischer ist offline Mitglied
    Registriert seit
    Apr 2004
    Beiträge
    12
    Grüß Euch!
    Wie der Betreff schon sagt, möchte ich mittels PHP Daten in ein XML-File hineinschreiben.
    Um mein Anliegen nachvollziehbar zu machen, hab ich unten mein XML-File hineingetippt.
    Ich möchte nun ein PHP-Skript erstellen, welches es ermöglicht, in diesem Baum zusätzliche <file>-Einträge mit allen Unterpunkten einzufügen, was natürlich an der richtigen Stelle geschehen muß. Hab schon ewig lange herumgesucht, aber eine für mich verständliche Erklärung hab ich leider nicht gefunden. Hab schon ein paar SAX-Tutorials durchgemacht, aber so etwas war in keinem davon abgedeckt. Mit dieser Pear::tree-Funktion hab ich es auch nicht auf die Reihe gekriegt und mit DOM kann ich nix anfangen, weil mein Provider das scheinbar nicht unterstützt.

    Meine Frage: Bin ich bei meinen Recherchen nach einem Parser auf einem komplett falschen Dampfer? Gibt es irgendwelche kinderleichten Möglichkeiten, mein Problem zu lösen und ich schnall's einfach nicht? Kann doch nicht so schwer sein, oder?

    Wäre Euch sehr verbunden, wenn ihr mir den einen oder anderen Anhaltspunkt geben könntet! Danke schon mal!


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    <?xml version="1.0" encoding="UTF-8"?>
    <filemanagement>
        <folder foldername="SW">
            <caption>Strukturwissenschaften</caption>
            <file id="0" filename="test.xls">
                <fileinfo>
                    <author>Hugo Habicht</author>
                    <caption>Das ist nur ein Testfile</caption>
                    <date>10.04.2004</date>
                    <rating>5.0</rating>
                    <path>./irgendwo</path>
                </fileinfo>
            </file>
            
            <file id="1" filename="telefonbuch.pdf">
                <fileinfo>
                    <author>Donald Duck</author>
                    <caption>Telefonbuch</caption>
                    <date>10.04.2004</date>
                    <rating>5.0</rating>
                    <path>./irgendwoanders</path>
                </fileinfo>
            </file>
        </folder>
    </filemanagement>
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Hallo....


    du könntest dir die Datei per fread() auslesen und dann per RegExp die richtigen stellen suchen,
    wo du einfügen willst... das sieht auf den ersten Blick recht unkompliziert aus.

    z.B.könntest du mit
    PHP-Code:
    $strXmlFile=preg_replace(/(</file>)s*(</folder)/siU,"\\1 $strFileItem \\2",$strXmlFile); 
    ... ein neues <file>-item am Ende von <folder>einhängen.
    Oder analog dazu mit
    PHP-Code:
    $strXmlFile=preg_replace(/(</folder>)s*(</filemanagement)/siU,"\\1 $strFolderItem \\2",$strXmlFile); 
    ...ein neues <folder>-item.

    Danach schreibst du dann per fputs() den neuen String in die Datei zurück...fertig.

    Auch das Ändern bestehender Einträge sollte per RegExp nicht sonderlich schwer sein.....
     

  3. #3
    scheibenwischer scheibenwischer ist offline Mitglied
    Registriert seit
    Apr 2004
    Beiträge
    12
    Puh...da blick ich auf Anhieb jetzt nicht durch (Anfänger und so...), aber ich werd mal versuchen da durchzuackern. Plausibel klingt es ja irgendwie...

    Danke jedenfalls!
     

  4. #4
    scheibenwischer scheibenwischer ist offline Mitglied
    Registriert seit
    Apr 2004
    Beiträge
    12
    Hm...ok...hab versucht, das nach deinem Code zu lösen und ihn einfach mal 1:1 in ein Script verpackt.

    Da bekomm ich aber leider nur folgende Fehlermeldung:
    Parse error: parse error, expecting `')'' in /Library/WebServer/Documents/MockUp/scripts/edit.php on line 5

    Hab dann versucht, das mit Hilfe des Manuals zu verbessern, mit dem Ergebnis, daß er nun das FIle öffnet und den kompletten Inhalt löscht.

    Kannst Du mir vielleicht einen Tipp geben, wie ich deine Codezeile irgendwie zum Laufen bringen kann? Der Ansatz scheint mir nachvollziehbar, aber die Definition der Pattern duchschau ich nicht ganz...
     

  5. #5
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Den Code hat da Board etwas zerstümmelt, indem es ein paar Backslashes verschluckt hat... daraus resultiert vielleicht der Parse-Error

    Die Pattern ist recht simpel....
    • Suche einen schliessenden </file>-Tag, gefolgt von einen Paar Leerzeichen und einem schliessenden </folder>-Tag.
    • Ersetze in der Fundstelle die Leerzeichen zwischen diesen beiden Tags durch das zusätzliche <file>.

    Ich hab mal nen Bsp. fertiggemacht.... ich hängs hier ran, damit das Board nicht wieder dazwischenfunkt
    Angehängte Dateien Angehängte Dateien
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 10.03.10, 22:05
  2. in ein file.txt schreiben
    Von Neo im Forum PHP
    Antworten: 9
    Letzter Beitrag: 18.03.08, 16:34
  3. In ein txt-File schreiben
    Von ParadiseCity im Forum .NET Datenverwaltung
    Antworten: 6
    Letzter Beitrag: 18.10.05, 16:57
  4. txt.file schreiben
    Von schurlisr50 im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 28.03.05, 12:04
  5. In File schreiben
    Von Sergunja im Forum Java
    Antworten: 1
    Letzter Beitrag: 06.12.04, 15:19