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