Autor Zpráva
lerry135
Profil *
Mám problém s tím jak upravovat XML soubor..

1) XML soubor



<?xml version="1.0" encoding="Windows-1250"?>
<dokument>
<item>
<text>Ahoj toto je text</text>
<text>Toto je dalsi text</text>
</item>
</dokument>



2)( po načtení přes simplexml_load_file si ho zobrazím...)
ale já bych chtěl vědet jak tento XML element <text>Ahoj toto je text</text> změním a přepíšu ho
tzn. že <text>Ahoj toto je text</text> nahradím <text>zmeneny text</text>



Pozn: (když to řeknu lajcky tak by to mělo být tak, že si ten text uložím do proměnné např. $text1 a pak tu proměnou změním a uložím do xml)
Ale to právě nevím jak uložit(přepsat) do xml, aby výsledný xml byl změněn.
Prosím poraďte někdo!!
Mike8748
Profil
$xml=simplexml_load_file('soubor.xml');
$xml->item->text="zmeneny text";
file_put_contents('soubor.xml',$xml->asXML());
lerry135
Profil *
diky funguje
lerry135
Profil *
ještě jeden dotaz:

xml v této podobě...

<?xml version="1.0" encoding="Windows-1250"?>
<dokument>
<item>
<text>
<![CDATA[<font color='#FFCC00'>Ahoj toto je text</font><BR>"a tohle pokračování".]]>
</text>
<text><![CDATA[Toto je dalsi text]]></text>
</item>
</dokument>

(nactu soubor.xml $xml=simplexml_load_file('soubor.xml');

a dál:


$fxml=$_POST['new']; //v textovém poli edituju a ukládám do $new
$xml->item->text=$fxml;
file_put_contents('soubor.xml',$xml->asXML());
)





hlasi to chybu

Warning: simplexml_load_file() [function.simplexml-load-file]: data.xml:5: parser error : Entity 'aacute' not defined in /DISK3/WWW/web.com/www/pokus.php on line 23

Warning: simplexml_load_file() [function.simplexml-load-file]: "pokračov&aacute;n&iacute;".&lt;/p&gt;</item> in /DISK3/WWW/web.com/www/pokus.php on line 23

co s tím?? jak to vyřešit
Mastodont
Profil
Já ten soubor otevřu v pohodě .. jinak 'aacute' je 'a s čárkou', takže tam budeš mít asi nějaký problém s kódováním.
lerry135
Profil *
už vím kde je problém když to uložím ztratí se to CDATA

před uložením v XML:
<text><![CDATA[Toto je dalsi text]]></text>

po uložení v XML
<text>Toto je dalsi text</text>

a navíc nemůžu používat češtinu kvuli kódování

Takže nevím jak udělat to tak aby po uložení bylo

<text><![CDATA[Toto je dalsi text]]></text>
Mike8748
Profil
lerry135
SimpleXML.... to simple tam samo o sobe neco naznacuje :)

- musis pouzivat windowsacky kodovani? mas neco proti utf8? nebo program kterej generuje to xml ma neco proti utf8?
- nemuzes do textu ukladat XHTML?
- kdyz chces slozitejsi manipulaci s xml (coz evidentne chces) tak ti asi nezbyde nic jinyho nez pouzit DOM nebo xmlreader/xmlwriter tridy
lerry135
Profil *
jj zkusim díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0