Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Zeilenumbrüche gehen bei Zuweisung an XML-Bindung verloren

  Alt 12. Jun 2014, 12:03
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?

Geändert von Der schöne Günther (12. Jun 2014 um 12:06 Uhr)
  Mit Zitat antworten Zitat