Hallo,
Tatsächlich, im definitiven XML-Dokument hatte ich ein 'é' drin. Nun funktioniert es. Du bist super...
Trotzdem habe ich noch eine Frage: Ich dachte eigentlich, wenn ich etwas UTF8-Kodiert habe, sind diese Zeichen schon im Zeichensatz mit drin, ich muss sie also nicht speziell behandeln. Wieso ist dem nicht so? Anscheinend habe ich hier irgendwas falsch verstanden...
Hast Du wirklich UTF-8 encodierte Zeichenketten vorliegen? Diese entstehen beispielsweise, wenn Du dein XML-File mit einem Text-Editor, der das kann, in UTF-8-Encoding abspeicherst. Bleiben wir bei Deinem Beispiel:
Das Zeichen é hat den Code 0xE9. In einem ISO-8859-1 encodierten File würde dieser Code das Zeichen é repräsentieren, also so im File stehen. In diesen charsets stehen aber nur 1 Byte je Zeichen, also 255 unterschiedliche Zeichen zur Verfügung. In UTF-8 werden nur ASCII-Zeichen (0x00 - 0x7F) so kodiert. Andere Zeichen haben zwei, drei oder mehr Byte (siehe http://de.wikipedia.org/wiki/UTF-8). Das é wäre in UTF-8 0xCE89. In einem UTF-8-File müssten also die Bytes 0xCE89 für é stehen.
Wenn Du diese UTF-8 encodierten Dateien dann mit einer Programmiersprache (z.B. PHP) weiterbearbeitest, dann müssen die Funktionen dieser Programmiersprache mit UTF-8 umgehen können. Inwieweit das PHP-Funktionen können, sollte im PHP-Handbuch stehen.
Die Angabe des charset in Deklarationen (z.B.: <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>) dient _nur_ dazu, der Software, welche diese Dokumente dann parsen soll, mitzuteilen, welches charset verwendet wurde. Die Angabe des charset allein macht aber aus einem/einer ISO-encodierten File/Ressource kein/e UTF-encodiertes File/Ressource.
viele Grüße
Axel