Hallo,
ich komme bei folgendem Problem trotz ausgiebiger INet-Suche einfach nicht weiter:
In einem Textabsatz sollen Texte und Tags kombiniert werden. Hintergrund: ein Tool liest das
XML-File und interpretiert die Tags wie in diesem Fremdprogramm konfiguriert.
Beispiel der
XML-Datei:
Code:
<?
xml version="1.0" encoding="UTF-8" ?>
<body>
<p>
Dies ist normaler Text
<bold>und dies wird als Fettschrift interpretiert</bold>
und hier gehts wieder normal weiter
</p>
</body>
Das Fremdprogramm liest den Absatz <p>..</p> interpretiert den Tag <bold> als "schreibe den nachfolgenden Text in Fettschrift bis </bold> kommt" und macht danach in normaler Schrift weiter. Dieses Verhalten wird im Fremdprogramm definiert.
Mein Ansatz dazu ist:
Delphi-Quellcode:
procedure TForm1.Btn_CreateClick(Sender: TObject);
var
My_XML: IXMLDocument;
n1, n2, n3: IXMLNode;
sCellVal: string:
begin
My_XML := NewXMLDocument('1.0');
My_XML.Active := True;
My_XML.ChildNodes.Clear;
My_XML.Encoding := 'UTF-8';
n1 := My_XML.AddChild('body');
n2 := n1.AddChild('start');
n3 := n2.AddChild('p'); // Neuer Absatz bzw. zusammengehöriger Text
s := 'Dies ist normaler Text ';
s := s + '<bold>und dies wird als Fettschrift interpretiert</bold> ';
s := s + 'und hier gehts wieder normal weiter.';
n3.Text := s;
My_XML.SaveToFile('Test.xml');
end;
... und das funktioniert nicht. Die Tags <bold> und </bold> werden als Text und nicht als Tag sowohl vom IE als auch vom Fremdprogramm interpretiert und alles erscheint (schlecht lesbar) in einer langen Zeile in diesem Absatz.
Fragen:
1) Wie setze ich die Zeilenumbrüche (bessere Lesbarkeit)? Ein "#13#10"
reicht offensichtlich nicht. Jedenfalls werden sie im IE nicht ausgeführt.
2) Was muss ich machen, dass die Tags (im obigen Beispiel <bold> </bold> auch
als solche erkannt werden. Der IE ignoriert sie einfach und das lesende
Tool kann damit auch nix anfangen. Sie werden schlicht als Text interpretiert.
Besten Dank vorab für eure Hilfe!
Gerald