![]() |
Fehlermeldung beim Erstellen einen neuen XML-Dokument
Ich habe folgenden Code für das Erzeugen eines neuen XMl-Dokumentes:
Delphi-Quellcode:
Leider bekomme ich immer an der Stelle XMLDoc.Active := true die folgende Fehlermeldung:
procedure TForm1.Neu1Click(Sender: TObject);
var NewXMLDoc : IXMLDocument; Prolog : TStrings; begin NewXMLDoc := TXMLDocument.Create(self); Prolog := TStringList.Create; Prolog.Insert(0,'<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>'); Prolog.Insert(1,'<?xml-stylesheet href="style.xsl" type="text/xsl"?>'); Prolog.Insert(2,'<!DOCTYPE SQLDatei ['); Prolog.Insert(3, ''); Prolog.Insert(4, #9 + '<!ELEMENT SQLDatei (Script+)>'); Prolog.Insert(5, #9 + ''); Prolog.Insert(6, #9 + '<!ELEMENT Script (Beschreibung,Befehl)>'); Prolog.Insert(7, #9 + '<!ELEMENT Beschreibung (#PCDATA)>'); Prolog.Insert(8, #9 + '<!ELEMENT Befehl (#PCDATA)>'); Prolog.Insert(9, #9 + '<!ATTLIST Script'); Prolog.Insert(10, #9 + #9 + 'DB-Typ (SQL-Sever | Oracle) #REQUIRED'); Prolog.Insert(11, #9 + #9 + 'Nummer CDATA #REQUIRED'); Prolog.Insert(12, #9 + #9 + 'Author CDATA #REQUIRED'); Prolog.Insert(13, #9 + '>'); Prolog.Insert(14, #9 + ']>'); Prolog.Insert(15,'<SQLDatei>'); Prolog.Insert(16, #9 + '<Script DB-Typ="SQL-Server" Nummer="1" Author="CD">'); Prolog.Insert(17, #9 + #9 + '<Beschreibung>Neue Beschreibung eintragen</Beschreibung>'); Prolog.Insert(18, #9 + #9 + '<Befehl>Neues SQL-Script eintragen</Befehl>'); Prolog.Insert(19, #9 + '</Script>' ); Prolog.Insert(20, '</SQLDatei>'); NewXMLDoc.XML := Prolog; NewXMLDoc.Active := true; SaveDialog1.Filter := 'XML-Document (*.xml)|*.XML'; if SaveDialog1.Execute then NewXMLDoc.FileName := SaveDialog1.FileName; NewXMLDoc.SaveToFile(NewXMLDoc.FileName + '.xml'); XMLDoc.FileName := NewXMLDoc.FileName; XMLDoc.Active := true; Lesen(0); end; Im Projekt ist eine Exception der Klasse EDOMParseError aufgetreten. Meldung:'System error: -2146697210. Linie:0 '. Prosess wurde angehalten. Die Funktion Lesen liest den Knoten mit Index 0 des XML-Dokumentes. Das XML-Dokument wurde aber erstellt und ich kann mir es anzeigen lassen ohne das Fehlermeldungen auftreten. Hat von euch vieleicht jemand eine Idee? |
Re: Fehlermeldung beim Erstellen einen neuen XML-Dokument
Ich würde sagen die Lesen ist kaputt :wink:
|
Re: Fehlermeldung beim Erstellen einen neuen XML-Dokument
Klasse Kommentar, danke für die wirklich brauchbare Hilfe. :thumb:
|
Re: Fehlermeldung beim Erstellen einen neuen XML-Dokument
1. Was ist XMLDoc?
2. Muss bei XMLDoc nicht noch ein LoadFromFile rein? 3. Warum arbeitest du nicht direkt mit XMLDoc? |
Re: Fehlermeldung beim Erstellen einen neuen XML-Dokument
Uns fehlen generell die refenzierten Dateien, wie z.B. das StyleSheet, um es testen zu können. Aber einen Tipp habe ich, nutze anstatt Insert(X, ''); lieber einfach ein Add('');, das ist schneller und flexibler :cyclops:
...:cat:... |
Re: Fehlermeldung beim Erstellen einen neuen XML-Dokument
@ jim_raynor: XMLDoc ist die TXMLDocument Komponente von Form1, die kann ich nicht benutzten, denn es könnte ja sein dort schon eine andere XML-Datei drin steht.
@ sakura: Ich habe jetzt das Add benutzt, ich hab gedacht das würde nur geht wenn schon was in der StringList steht. Funktioniert aber wunderbar. @ all: Danke für die Tipps, ich habe den Fehler gefunden. Der Fehler war in der Zuweisung des Filename es muss heißen:
Delphi-Quellcode:
Jetzt läuft es ohne Probleme. :)
//Speichern des neuen XML-Dokument
SaveDialog1.Filter := 'XML-Document (*.xml)|*.XML'; if SaveDialog1.Execute then NewXMLDoc.FileName := SaveDialog1.FileName + '.xml'; NewXMLDoc.SaveToFile(NewXMLDoc.FileName); XMLDoc.FileName := NewXMLDoc.FileName; XMLDoc.Active := true; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:09 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