Thema: Delphi TXMLDocument und Umlaute

Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#1

TXMLDocument und Umlaute

  Alt 8. Jul 2009, 11:18
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;
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat