![]() |
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:
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.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE knotenname SYSTEM "externe_dtd_datei.dtd"> Danke, und Gruß. |
Re: DOCTYPE nachträglich hinzufügen
Hi Mathias,
generell würde ich es mal mit der Eigenschaft doctype von IXMLDOMDocument2 ausprobieren. ;) Chris |
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:
bzw.
ShowMessage(xmldoc.doctype.xml);
Delphi-Quellcode:
Aber jeder Versuch, die Angaben zu ändern, klappt so leider nicht. :(
ShowMessage(Format('%s = %s',
[xmldoc.doctype.attributes.item[0].Get_nodeName, xmldoc.doctype.attributes.item[0].Get_nodeValue]) ); Weitere Vorschläge? ;) |
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:49 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