Parser
Heinrich
- php
0 dedlfix
0 Heinrich
0 Mathias Brodala
Hi,
Ich möchte mit PHP-Parser folgende Zeichenkette parsen: "<TEST>A&B&C</TEST>".
Also mache ich wie folgt:
$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
falls als zwiete Parameter von xml_parse die Zeichenkette "<TEST>A&B&C</TEST>" angegeben wird
als Ergbebniss wird TEST = "C" zurückgegeben.
Hat jemand eine Idee, was machen, um TEST = "A&B&C" bekommen ?
Heinrich
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 & (oder & oder &) notiert werden, sonst ist das XML ungültig.
falls als zwiete Parameter von xml_parse die Zeichenkette "<TEST>A&B&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";
Hallo Heinrich.
Ich möchte mit PHP-Parser folgende Zeichenkette parsen: "<TEST>A&B&C</TEST>".
[…]
Hat jemand eine Idee, was machen, um TEST = "A&B&C" bekommen ?
Mittels DOM wären es drei Zeilen:
$obj_doc = new DomDocument;
$obj_doc->loadXML('<TEST>A&B&C</TEST>');
echo $obj_doc->documentElement->tagName . ' = "' .
$obj_doc->documentElement->nodeValue . '"';
Setzt natürlich PHP5 voraus …
Einen schönen Samstag noch.
Gruß, Mathias