![]() |
XML Element-Text unverändert einlesen
Hallo Leute,
und zwar versuche ich gerade Texte von Elementen einzulesen und in einem TRichEdit Feld anzuzeigen. Das funktioniert soweit ohne Probleme, allerdings würde ich gerne den einzulesenden Text "unberührt" einlesen, also so wie er in den jeweiligen Element steht. Das Problem hierbei sind Zeichen wie &, <, > etc .. Diese stehen im XML Dokument genau so drin, also z.B. "& das ist ein Text". Will ich diesen Text nun als String in das TRichEdit Feld hinzufügen steht dort dann "& das ist ein Text". Jemand eine Tipp für mich wie er das als "&" einliest und vorallem auch wieder als "&" speichert? Dank schon im Voraus & noch ein Frohes Fest, dammi |
Re: XML Element-Text unverändert einlesen
ich sag jetzt einfach mal: das geht nicht.
dieses gehört zum XML-Format und wird von jedem ordentlichem XML-Parser automatisch entschlüsselt. wenn du das wirklich als Text haben willst, dann muß es so kodiert werden: "&amp; das ist ein Text" |
Re: XML Element-Text unverändert einlesen
Alles klar, dann muss ich mal schauen ob TrueCrypt das dann auch lesen kann.
Aber noch eine andere Frage: Und zwar erstelle ich ja das Objekt (Interface) vom Typ IXMLDocument und lade die XML Datei mit z.B.
Delphi-Quellcode:
Mich würde noch interessieren wie ich später im Programm prüfen kann, ob dieses Objekt aktuell noch existiert.
XMLFile := newIXMLDocument;
XMLFIle.LoadFromFile('blablub.xml'); XMLFile.Active := true; Also wie man prüfen kann ob die Referenz auf das Objekt noch existiert und diese vll auch löschen kann. |
Re: XML Element-Text unverändert einlesen
Wenn XMLFile vom Typ IXMLDocument (nicht TXMLDocument) ist, dann wird das Dokument freigegeben, wenn alle Varialben, welche dieses Objekt enthielten entweder NIL sind oder nun ein anderes Dokument enthalten oder nicht mehr existieren (z.B. lokale Prozedurvariblen, nachdem die Prozedur verlassen wurde).
Global prüfen kann man es nicht. |
Re: XML Element-Text unverändert einlesen
Man kann die Anzahl der Referenzen auslesen.
Dazu wird der interne Referenzzähler um eins erhöht und dann wieder erniedrigt.
Delphi-Quellcode:
In manchen Fällen kann der ausgelesene Referenzzähler auch gefaked sein und liefert so immer 1.
interfacevar._AddRef;
anzahl := interfacevar._Release; |
Re: XML Element-Text unverändert einlesen
Na super :P
Dann werd ich einfach auf das "Active" des erstellten Objekts prüfen (welches ich beim erstellen immer auf true setze) und mit der Exception weiterarbeiten. Also
Delphi-Quellcode:
Da dürfte ich ja dann auf der sicheren Seite sein hoffe ich :P
try
if XMLFile.Active = true then begin .... end; except on E: Exception do begin .... end; end; |
Re: XML Element-Text unverändert einlesen
Wenn du eh eine Variable mit diesem Interface drinnen hast, dann existiert auch noch das Objekt
und man müßte eigentlich nicht extra nochmal nachprüfen. Bei Interfaces ist es standardmäßig so, daß sie automatisch freigegeben, wenn die letzte Referenz auf sie freigegeben wurde, also wenn es keine Variablen mehr gibt, wo sie noch drin stecken. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:14 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