Mailinglisten-Archive |
Hallo Peter, Peter Bieling schrieb: > Hallo Martin, > > Martin Adler wrote: >>Um CData Daten bestehend aus White Spaces zu vermeiden, Prüfe ich mit >>folgendem Ausdruck: >>if(!preg_match('/^[\t \n\r]+$/',$data)) { >> $var .= $data >>} >>Gibt es eine bessere Möglichkeit als einen Regulären Ausdruck hierfür? > > > z.B. $var .= trim($data); da die cData in Stücken geliefert werden geht das eben nicht an genau dieser stelle. Denkbar wäre dies wohl bei der Ausgabe oder auch möglich in der endElement Callback Funktion. >>Ein weiteres Problem ist, dass sich die Funktion >>*xml_set_character_data_handler()* sich nicht ganz so verhält wie ich es >>mir erwartet hatte bzw. ich nicht ganz verstehe wieso die Funktion sich >>so verhält. >>So trifft der Parser z.B. auf Umlaute, so wird der Vorgang abgebrochen >>und anschließend erneut aufgerufen. > > Meinst Du, dass die Umlaute rausfallen? > Wie sieht denn Deine XML-Deklaration aus? > Verwendest Du PHP4 oder 5? Umlaute fallen nicht weg sondern der Parsvorgang wird durch das erneute aufrufen der cData Callback Funktion fortgesetzt. Zum Einsatz kommt in diesem Fall PHP 5.1.1 > Vielleicht sagst Du uns noch, was Du mit den Expat-Funktionen vorhast? > Für XML gibt es nämlich abhängig vom Zweck noch diverse andere > Möglichkeiten, besonders natürlich mit PHP5. Es geht lediglich darum XML Daten zu lesen und in eine Array-Struktur zu bringen. Das ganze Funktioniert auch schon nur sind gewisse dinge eben nicht ganz nachvollziebar, da in der PHP Dokumentation hierzu keine weitere Stellung genommen oder ganz ausgelassen wird. Um den Parser zu schreiben habe ich exemplarisch das Heise Online RDF verwendet. grüße Martin Adler
php::bar PHP Wiki - Listenarchive