Es geht aber um den Inhalt eines Knotens, nicht die Dokumentstruktur an sich. Die ganze CDATA-Geschichte habe ich vergessen, aber ich glaube, der Zeilenumbruch sollte erhalten bleiben, da hat er schon Recht.
Und bei mir wird er das auch.
Hier ein Beispiel:
Delphi-Quellcode:
program Project4;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
XmlIntf,
XmlDoc,
ActiveX;
const
xmlContent:
String =
'
<ProfileData>' + #13#10 +
'
<AdditionalTextUser>Positionierhinweis' + #13#10 +
'
1120 P1200Positionierhinweis' + #13#10 +
'
1120 P1200Positionierhinweis' + #13#10 +
'
1120 P1200</AdditionalTextUser>' + #13#10 +
'
</ProfileData>';
var
xmlClassRef: TXMLDocument;
xmlIntfRef: IXMLDocument;
node: IXMLNode;
begin
CoInitializeEx(
nil, COINIT_APARTMENTTHREADED);
xmlClassRef := TXmlDocument.Create(
nil);
xmlClassRef.LoadFromXML(xmlContent);
xmlIntfRef := xmlClassRef;
WriteLn(xmlIntfRef.XML.Text);
node := xmlIntfRef.DocumentElement.ChildNodes.First();
writeLn(sLineBreak);
WriteLn(node.Text);
writeLn(sLineBreak);
writeln(node.NodeValue);
readln;
end.
Produziert:
Code:
<ProfileData>
<AdditionalTextUser>Positionierhinweis
1120 P1200Positionierhinweis
1120 P1200Positionierhinweis
1120 P1200</AdditionalTextUser>
</ProfileData>
Positionierhinweis
1120 P1200Positionierhinweis
1120 P1200Positionierhinweis
1120 P1200
Positionierhinweis
1120 P1200Positionierhinweis
1120 P1200Positionierhinweis
1120 P1200
Ich weiß nicht, warum du überhaupt zunächst ein TXMLDocument hast. Und was das komische Interface macht. Wie ist es definiert?