Was ich witzig finde:
in D4 bis D2007 kann man SimpleXML entweder im
Ansi-Modus (inklusive UTF-8, aber ohne Dekodierung) laufen lassen,
oder im
Unicode-Modus ( einfach diesen Befehl aktivieren > { $DEFINE XML_WIDE_CHARS} ).
Wobei hier dann nur noch
Unicode-Dateien lesbar sind und andere
XML-Parser durchdrehen da dieser die Datei zwar im
Unicode (UTF-16) speichert, aber standardmäßig "windows-1251" als Standardencoding im "Header" speichert.
Und seit D2009 ist SimpleXML nativ nur noch
Unicode (wobei viele Stellen nicht korrekt arbeiten)
und wenn man jetzt aber zusätzlich noch { $DEFINE XML_WIDE_CHARS} aktiviert, denn arbeitet es überhaupt nicht mehr, da es das
Unicode dann als
Ansi ansieht und versucht es nochmals in
Unicode umzuwandeln
z.B.:
Delphi-Quellcode:
{$IFDEF XML_WIDE_CHARS}
CurChar := AnsiToUnicode(FBufPtr^);
{$ELSE}
CurChar := FBufPtr^;
{$ENDIF}
FBufPtr ist schon PChar, wird als AnsiChar genommen und nochmals in WideChar umgewandlet.
also bis D2007 noch nutzbar und danach muß man ganz schön aufpassen.
PS: in den
JEDIs gibt/gab (?) es auch ein "SimpleXML"
hab hier zwei "ältere" Dateien JvSimpleXml.pas (2002) JclSimpleXml.pas (01. 2009), aber da ich die
JEDIs grad nicht installiert hab, kann ich nichts weiteres dazu sagen.