dedlfix: Parser

Beitrag lesen

echo $begrüßung;

Ich möchte mit PHP-Parser folgende Zeichenkette parsen: "<TEST>A&B&C</TEST>".
$xmlPar = xml_parser_create();
xml_set_element_handler($xmlPar, "fStart", "fEnd");
xml_set_character_data_handler($xmlPar, "fData");
xml_parse($xmlPar, "<TEST>A&B&C</TEST>");
xml_parser_free($xmlPar);
als Ergebniss bekomme ich: TEST = "A" und wird ein Fehler angezeigt

Logisch, denn & muss als &amp; (oder &#38; oder &#x26;) notiert werden, sonst ist das XML ungültig.

falls als zwiete Parameter von xml_parse die Zeichenkette "<TEST>A&amp;B&amp;C</TEST>" angegeben wird als Ergbebniss wird TEST = "C" zurückgegeben.

Der Fehler muss in der Logik deiner Handler liegen. Der character_data_handler wird insgesamt 5 mal aufgerufen, für jeden Text-Block (bei dir nur jeweils ein Buchstabe) und für jedes Entity extra.

echo "$verabschiedung $name";