Męczę się od kilku godzin z edytowaniem pliku xml o następującej strukturze
<?xml version="1.0" encoding="utf-8"?> <dzialy> ..... <glowna header="Strona Główna"><![CDATA[treść do edycji]]></glowna> .... </dzialy>
Dałem kropki ponieważ plik będzie mial więcej wpisów lecz tylko ten muszę edytować.
Udało mi się zrobić skrypt pobierający treść do edycji korzystając z simplexml, udało mi się także napisać skrypt podmieniający zawartość <glowna> na ten wpisany w polu teksowym.
Niestety męczę się z tym CDATA, po użyciu tego skryptu:
<?php include "core.php"; $xml = simplexml_load_file("../dzialy.xml", 'SimpleXMLElement', LIBXML_NOCDATA); $prefix = "<![CDATA["; $sufix = "]]>"; $xml->glowna = $prefix.$tresc.$sufix; $xml->asXML("../dzialy.xml"); ?>
zamiast < i > mam encje... Kombinowałem z DOMem też ale raz, że go nie ograniam, a dwa że aby użyć createCDATASection muszę użyć appedChild a nie chcę dodwać żadnego dziecka tylko podmienić wartość, kolejności wpisów też nie mogę zmienić.
Reansumując prosiłbym o pomoc w napisaniu skryptu który podmieniałby zawartość <glowna> i zachowałby bajer typu CDATA w niezmienionej formie. Najlepiej, gdyby skrypt nie zamieniał znaków typu < > & czy choćby 'enterów' na encje.
Proszę o pomoc i z góry dziękuję !