phpbar.de logo

Mailinglisten-Archive

[php] XML Attribute mit Zeilenumbruch

[php] XML Attribute mit Zeilenumbruch

eschmid+sic_(at)_s.netic.de eschmid+sic_(at)_s.netic.de
Thu, 28 Sep 2000 23:08:51 +0200


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("&lt;", "&gt;", "&apos;", "&quot;", "&amp;", '&#x0a;'),
>      $value
>    )
> );
> 
> Zur Dekodierung wird folgendes benutzt:
> 
> utf8_decode(
>    preg_replace( 
>     array("_(at)_&lt;_(at)_", "_(at)_&gt;_(at)_", "_(at)_&apos;_(at)_", "_(at)_&quot;_(at)_", "_(at)_&amp;_(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