Hallo,
In Delphi 2009 habe ich eine Fehlermeldung bei der Verwendung von TXMLDocument mit Umlauten. Beim Zurücklesen der
XML Datei wird die Fehlermeldung ''An invalid character was found in text content.' angezeigt, beim Setzen von Active auf True. Im Editor wird UTF-8 Codierung verwendet.
In Notepad und Wordpad sieht die Datei gut aus:
<?
xml version="1.0"?>
<a>äöü</a>
In XmlSpy wird ein Quadrat statt den Umlauten angezeigt.
Ist das ein bekanntes Problem?
Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
var
xmlDoc: IXMLDocument;
N: IXmlNode;
begin
xmlDoc := TxmlDocument.Create(
nil);
xmlDoc.Active := True;
xmlDoc.Encoding := '
UTF-8';
N := xmlDoc.AddChild('
a');
N.Text := '
äöü';
with TStringlist.Create
do
try
Text := xmlDoc.XML.Text;
SaveToFile('
test.xml');
finally
Free;
end;
end;
procedure TfrmMain.Button2Click(Sender: TObject);
var
xmlDoc: IXMLDocument;
N: IXmlNode;
begin
xmlDoc := TxmlDocument.Create(
nil);
xmlDoc.XML.LoadFromFile('
test.xml');
xmlDoc.Active := True; <----
Exception
N := xmlDoc.DocumentElement;
ShowMessage(N.Text);
end;