Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi DOCTYPE nachträglich hinzufügen (https://www.delphipraxis.net/17425-doctype-nachtraeglich-hinzufuegen.html)

MathiasSimmack 5. Mär 2004 12:24


DOCTYPE nachträglich hinzufügen
 
Hallo.

Weiß jemand ob (und wenn Ja: wie) es möglich ist, eine DOCTYPE-Angabe nachträglich in ein XML-Dokument einzufügen. Ich spreche natürlich davon, dass das Dokument über einen Parser (MS-XML in meinem Fall) geladen wird und dann in der Anwendung bearbeitet oder ausgewertet werden kann.
Nun habe ich festgestellt, dass bspw. der MS-XML-Parser sehr schön auf Fehler hinweist, wenn die XML-Datei nicht dem erwarteten Format entspricht. Dazu benötigt man aber die DOCTYPE-Deklaration, als Beispiel:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE knotenname SYSTEM "externe_dtd_datei.dtd">
Und weil ich davon ausgehen muss, dass bereits existierende Dateien diese Deklaration noch nicht haben, brauche ich eine Möglichkeit, sie mit den Mitteln des Parsers einzufügen. Allerdings habe ich bisher nichts gefunden. :oops: Die Angabe des entsprechenden Themas im PSDK bzw. der MS-XML-Hilfe würde mir schon genügen.


Danke, und Gruß.

CalganX 5. Mär 2004 12:56

Re: DOCTYPE nachträglich hinzufügen
 
Hi Mathias,
generell würde ich es mal mit der Eigenschaft doctype von IXMLDOMDocument2 ausprobieren. ;)

Chris

MathiasSimmack 5. Mär 2004 13:37

Re: DOCTYPE nachträglich hinzufügen
 
Das Problem ist, dass die meisten Eigenschaften alle schreibgeschützt sind.
Du kannst den Inhalt zwar auslesen:
Delphi-Quellcode:
ShowMessage(xmldoc.doctype.xml);
bzw.
Delphi-Quellcode:
ShowMessage(Format('%s = %s',
  [xmldoc.doctype.attributes.item[0].Get_nodeName,
   xmldoc.doctype.attributes.item[0].Get_nodeValue])
);
Aber jeder Versuch, die Angaben zu ändern, klappt so leider nicht. :(

Weitere Vorschläge? ;)

morbo 8. Mär 2004 06:43

Re: DOCTYPE nachträglich hinzufügen
 
Hi,
wie wär es ein neues Document mit dem Doctype zu erstellen und den Root Knoten aus dem "alten" Document zu clonen.

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz