Wenn in diesem Text jetzt ein & ist wird daraus ein & was ich ja sehr schön finde.
Leider ist es aber bei Zeichen wie "<" nicht so und es wird kein ">" draus :/
Weiss jemand wie ich das hinbekomme? Weil sonst werden meine XML Tags leider zerschossen.
Ich hab noch den weg über selber replacen versucht, aber dann wird das > zu ">" :/
ich würde gerne diesen Beitrag wieder aufleben lassen, da ich gerade das gleiche Problem habe.
Kann mir jemand sagen, warum createTextNode zwar "<" richtig nach "<" wandelt, aber ">" nicht?
Eine Manipulation vorab funktioniert nicht, da "&" aus "<" korrekt nach "&" gewandelt wird und daraus dann "<" entsteht.
Leider funktioniert dies so nicht.
An dem zu wandelnden String "String mit <XYZ>" ändert sich gar nichts, er wird lediglich in "![CDATA[String mit <XYZ>]]" geklammert.
ich glaube du hast mein Problem nicht richtig verstanden.
Ich möchte nicht, dass die Zeichen erhalten bleiben, sondern sie sollen durch die HTML-Zeichen ersetzt werden.
Es handelt sich um einen Konverter, welcher u.a. Strings aus einer ini-Datei in XML-Format wandelt.
Leider sind in diesen Strings auch "<>&" erlaubt.
createTextNode() sollte normalerweise den String so wandeln, dass er innerhalb eines Tags verwendet werden kann.
Leider funktioniert dies aber nicht beim ">" und dadurch wird vorzeitig ein Tag-Ende erkannt und die ganze Syntax dadnach passt nicht mehr.
Meiner Meinung nach ist dies ein Fehler in createTextNode().
Ich suche nun einen Weg, dieses Problem zu umgehen.
Der Zielstring sollte so aussehen: "String mit <XYZ$gt;"
ja, ich sehe das auch so, dass dort ein Fehler ist in Qt.
ABER Du willst ein gültiges XML Dokument haben, warum passt Dir dann dieser Lösungsweg nicht? Das Endergebnis ist doch genau das, was Du haben möchtest -> well-formed XML.
Wenn Du allerdings auf CDATA verzichten möchtest, dann schreib Dir doch selber den Konverter ohne Qt.
Wenn Dein XML Reader nicht mit CDATA umgehen kann, dann fehlt hier auch noch das Feature.
Die Idee den Konverter selber zu schreiben hatte ich auch schon, wollte aber gerne den Aufwand vermeiden.
Die resultierende XML-Datei wird von unterschiedlichen Stellen verwendet.
Da muss ich erst mal prüfen, ob diese alle mit CDATA-Format zurecht kommen.
Momentan komme ich allerdings nicht dazu, kann also etwas dauern.
If value contains characters which cannot be stored as character data of an XML document (even in the form of character references), the behavior of this function is governed by QDomImplementation::InvalidDataPolicy.
Steht also eindeutig da, dass dort nichts konvertiert wird.