Entwickler-Ecke

Sonstiges (Delphi) - [XML] ungültiges Zeichen


mexx - Fr 18.08.06 14:56
Titel: [XML] ungültiges Zeichen
Ich verwende folgenen Code um den Inhalt einer XML-Datei zu schreiben.


Delphi-Quelltext
1:
2:
 knoten := xmldoc.ChildNodes[RootNode].ChildNodes[ChildNode_1].AddChild(ChildEintrag);
 knoten.Text := ChildWert;


ChildWert ist das Value eines Field in einer Datenbank. Nun trifft aber der Falle ein, dass das Value welches ein String ist so aussieht.

abc/123

Der Slash wird beim Schreiben in die XML zurückgewiesen. Sicherlich weil der Parser der XML dieses Zeichen zum Interpretieren der Struktur verwendet.

Wie kann ich das lösen?


ManniTwo - Fr 18.08.06 19:03

hmm....also eigentlich ist IMHO doch aber der Slash an sich als Zeichen in einer XML-Datei erlaubt.
Wenn Schreiben absolut nicht geht, wäre meine Idee jetzt, dass du den Slash kodierst. Dann kommt es natürlich darauf an, wer mit der Datei weiterarbeitet. Wenn du es selber bist, sollte es kein Problem sein.

Es ist natürlich immer sinnvoll sich bei solchen Kodierungen an bestehenden Standards zu orientieren. Du könntest einen Slash also als: & # 47 ; kodieren, weil dann stellt jeder gängige Browser an der Stelle schon mal einen Slash dar. ( du musst dir da natürlich die leerzeichen wegdenken, aber wenn ich es ohne leerzeichen tippe, dann wird es auch in meinem Posting als "/" dargestellt.


mexx - Sa 19.08.06 19:49

Ich habe den Fehler gefunden und beseitigt. Die von Dir erwähnte Methode, um das Slash reinzuschreiben, wird aber nur sinnvoll, wenn man die XML von einem Browser interpretieren lassen will. Für die Interpretation des Slash von einer anderen Anwendung trifft das nciht zu. Verstehe ich das richtig?


ManniTwo - Mo 21.08.06 10:33

ja genau, es sei denn die verwendete Komponente für die Interpretation erkennt diese Kodierungen auch.