![]() |
AW: XML: Im Absatz Text und Tags kombinieren
Das Parsen (Lesen) ist nicht meine Baustelle :stupid:. Das macht das andere Tool. Ich lese ausgewählte Excelzellen ein und schreibe die Inhalte in die XML-Datei. Der Inhalt der Zellen beinhaltet bereits die Formatierung - ist also z.B. fett oder kursiv. Und das muss mitgegeben werden. Irgendwie scheint sowas zu gehen. Werde also mal die Tips von himitsu testen.
|
AW: XML: Im Absatz Text und Tags kombinieren
Achso, du willst also nur das "invalide" XML nur für das externe Tool schreiben können? Sag das doch gleich! :-D
Wenn das externe Tool die CDATA-Tags nicht stören (sollte es eigentlich nicht), dann kannst du das über einen ntCdata-Node machen, der wandelt die Entities ja nicht um, ausserdem bekommst du am Schluss eine valide XML-Datei:
Delphi-Quellcode:
in der Test.xml steht dann folgendes: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.'; // hier wird der CDATA-Node erzeugt, mit s gefüllt... n_cdata := My_XML.CreateNode(s,ntCData); // ...und n3 (dem p-tag) als childnode übergeben n3.ChildNodes.Add(n_cdata); My_XML.SaveToFile('Test.xml');
Code:
<?xml version="1.0" encoding="UTF-8"?>
<body> <start> <p> <![CDATA[Dies ist normaler Text <bold>und dies wird als Fettschrift interpretiert</bold> und hier gehts wieder normal weiter.]]> </p> </start> </body> Wenn das dein externes Tool nicht frisst, würde ich als zweiten Schritt versuchen, den kompletten <body>-Inhalt als CDATA zu deklarieren. Wenn das auch nicht geht, ist dein externes Tool etwas "schwindlig" und hat seine eigenen XML-Parse-Regeln, die nicht der Norm entsprechen :-) Dann hilft nur noch eines: Nach dem Schreiben der test.xml durch das XMLDocument mach die Datei nochmal mit nem Stream oder dergleichen, auf und entferne per StringReplace die "<![CDATA[" und "]]>", anschliessend neu speichern. Aber beim speichern dann auf die UTF8-Codierung achten. |
AW: XML: Im Absatz Text und Tags kombinieren
Zitat:
Danke für den Tip. Werde ich gleich mal ausprobieren. |
AW: XML: Im Absatz Text und Tags kombinieren
Hier werden Sie wirklich geholfen :thumb:
Hab das jetzt so wie von blackfin beschrieben eingebaut. Anschließend die XML-Datei in eine StringList eingelesen und zeilenweise die "<![CDATA[" und "]]>" mit StringReplace(..) gelöscht. Ist vielleicht nicht die schnellste Variante, aber da das Programm nur hier firmenintern eingesetzt wird und alle, die damit arbeiten, glücklich über die Arbeitserleichterung sind, werden 1-2 Sekunden gerne in Kauf genommen. Danke nochmals an alle für die Unterstützung. :cheers: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz