AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XML: Text mit Umlaut in Node schreiben

Ein Thema von taveuni · begonnen am 8. Aug 2022 · letzter Beitrag vom 9. Aug 2022
 
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
528 Beiträge
 
Delphi 11 Alexandria
 
#1

XML: Text mit Umlaut in Node schreiben

  Alt 8. Aug 2022, 13:10
Bitte um Entschuldigung für die möglicherweise triviale Frage. Auch die Suche hier hat viele XML Ergebnisse geliefert aber nicht offensichtlich für mein Problem.
Ganz einfach:

Delphi-Quellcode:
  var
    XMLDoc: IXMLDocument;
    RootNode, ErrNode: IXMLNode;
    sXml: UTF8String;
  begin
    CoInitialize(Nil);
    Try
      XmlDoc:= NewXmlDocument;
      XmlDoc.Options:= [doNodeAutoIndent];
      XmlDoc.Active:= True;
      RootNode:= XMLDoc.AddChild('lpr:error', Format('http://%s/lpr',['127.0.0.1']));
      ErrNode:= XmlDoc.CreateElement('message','');
      ErrNode.NodeValue:= 'Dies ist ein Umlaut: ö.';
      RootNode.ChildNodes.Add(ErrNode);
      XMLDoc.Encoding:= 'utf-8';
      XmlDoc.SaveToXML(sXml);
    Finally
      CoUninitialize;
    End;
In sXml würde ich jetzt erwarten:

Code:
<?xml version="1.0" encoding="utf-8"?>
<lpr:error xmlns:lpr="http://127.0.0.1/lpr">
<message>Dies ist ein Umlaut: &ouml;.
</message>
</lpr:error>'
drin ist aber

Code:
<?xml version="1.0" encoding="utf-8"?>
<lpr:error xmlns:lpr="http://127.0.0.1/lpr">
<message>Dies ist ein Umlaut: ö.
</message>
</lpr:error>'
Was ein ungültiges XML bedeuted. Ich habe bisher nur haufenweise XML gelesen oder ohne Umlaute geschrieben.

Irgendwo habe ich noch das gefunden:

sXml:= TEncoding.UTF8.GetString(TEncoding.ANSI.GetBytes(string(XmlDoc.Xml.Text)));

Das wirft aber den Fehler: ---------------------------

Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt test.exe ist eine Exception der Klasse EEncodingError mit der Meldung 'Keine Zuordnung für Unicode-Zeichen in der Multibyte-Zielcodeseite vorhanden' aufgetreten.

Wo ist mein Denkfehler?
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz