Mailinglisten-Archive |
On Thu, Sep 28, 2000 at 11:03:18PM +0200, Ulf Wendel wrote:
> wie speichere und lese ich einen XML Container, der einen Zeilenumbruch
> in einem Attribut enthält? Das Einlesen des XML muß mit PHP/XML (Expat)
> erfolgen. Generiert wird manuell. DOM steht per Definition nicht zur
> Verfügung.
>
> Für die Kodierung benutze ich derzeit:
>
> utf8_encode(
> preg_replace(
> array( "_(at)_<_(at)_", "_(at)_>_(at)_", "_(at)_'_(at)_", '_(at)_"_(at)_', "_(at)_&_(at)_", "_(at)_[\n\r]_(at)_"),
> array("<", ">", "'", """, "&", '
'),
> $value
> )
> );
>
> Zur Dekodierung wird folgendes benutzt:
>
> utf8_decode(
> preg_replace(
> array("_(at)_<_(at)_", "_(at)_>_(at)_", "_(at)_'_(at)_", "_(at)_"_(at)_", "_(at)_&_(at)_"),
> array("<", ">", "'", '"', "&"),
> $value
> )
> );
>
> Geparst wird mit:
>
> $parser = _(at)_xml_parser_create();
> xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
> xml_parse_into_struct($parser, $xml, &$values, &$index);
>
> Es kommt zu einer Verdoppelung der Zeilenumbrüche. Und nein, die
> Entfernung von _(at)_[\n\r]_(at)_ aus der Kodierungsanweisung reißt es nicht raus.
>
> Wie macht man es richtig?
Ich habe Deine Frage nicht so richtig verstanden. Wenn man alle vier
Handler (start, stop, default, character) einsetzt, dann müsste es
funktionieren. Bei den Start- und Stop-Handlern müssen aber auch ALLE
Elemente berücksichtigt werden.
-Egon
--
http://www.linuxtag.de/
http://php.net/books.php
http://www.concert-band.de/
php::bar PHP Wiki - Listenarchive