phpbar.de logo

Mailinglisten-Archive

[php] XML Attribute mit Zeilenumbruch

[php] XML Attribute mit Zeilenumbruch

Ulf Wendel ulf.wendel_(at)_redsys.de
Thu, 28 Sep 2000 23:03:18 +0200


Hallo,

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?

Ulf


php::bar PHP Wiki   -   Listenarchive