XML Dokument dynamisch erstellen
-
Hallo zusammen... ich habe folgendes Problem: Ich möchte zur Laufzeit ein TXMLDocument erstellen, und dazu die Optionen setzen. Leider wird folgende Zeile:
XML->Options <<doAutoSave <<doNodeAutoIndent <<doAttrNull <<doAutoPrefix <<doNodeAutoCreate;
scheinbar vom Compiler ignoriert, und die Standardoptionen bleiben eingestellt. Woran kann das liegen?
-
Da fehlt noch die eigentliche Zuweisung:
XML->Options = TXMLDocOptions() <<doAutoSave; // alternativ XML->Options = XML->Options <<doAutoSave;
-
Hey Dankeschön... Das mit der Zuweisung funktioniert schon mal prima... aber leider kann ich noch nicht auf das DocumentElement zugreifen. Alle Eigenschaften habe ich (glaube ich wenigstens) richtig eingestellt und die Eigenschaft XML zeigt auch den XML-Code an aber beim Zugriff auf Document Element stürzt das Programm ab. Hier auf jeden Fall mein bisheriger Code:
TXMLDocument *XML = new TXMLDocument("test.xml"); XML->DOMVendor = MSXML_DOM; XML->NodeIndentStr = " "; XML->Options = XML->Options <<doAutoSave <<doNodeAutoIndent <<doAttrNull <<doAutoPrefix <<doNodeAutoCreate; XML->LoadFromFile("test.xml"); _di_IXMLNode Temp; Temp = XML->DocumentElement; //Hier passiert der Laufzeitfehler (Zugriffsverletzung)
-
tja ich kann nur raten, da ich das zeugs net kenn:
// bist sicher das das so heissen muss? _di_IXMLNode Temp = XML->DocumentElement; // oder nciht eher so (beachte den asterix) ? _di_IXMLNode *Temp = XML->DocumentElement;
-
In der Fehlermeldung steht nicht zufällig etwas von "No active document"? Zitat aus der BCB-Hilfe:
Note: DocumentElement is not available unless the XML document is Active.
-
Ne daran liegts auch nicht, "LoadFromFile" setzt Active automatisch auf true, ausserdem kann ich ja auch auf die Eigenschaft XML zugreifen, was ja eigentlich zeigen sollte, dass die Datei aktiv ist...
-
Hallo,
ein bißchen spät, aber vielleicht trotzdem interessant.
Ich hatte dasselbe Problem in den Borland Newsgroups mal geschildert.
Die Antwort war, anstattTXMLDocument *XML = new TXMLDocument("test.xml");
das hier
_di_IXMLDocument *XML = NewXMLDocument("1.0");
zu verwenden.
Ich hoffe, das war jetzt kein absolut kalter Kaffee...
Alexander
-
Alexander Kempf schrieb:
Hallo,
ein bißchen spät, aber vielleicht trotzdem interessant.
Ich hatte dasselbe Problem in den Borland Newsgroups mal geschildert.
Die Antwort war, anstattTXMLDocument *XML = new TXMLDocument("test.xml");
das hier
_di_IXMLDocument *XML = NewXMLDocument("1.0");
zu verwenden.
Ich hoffe, das war jetzt kein absolut kalter Kaffee...
Alexander
Go To FAQ
-
Ich habe das gleich Problem mit den Options, aber auch der Vorschlag von
JansenJansen schrieb:
Da fehlt noch die eigentliche Zuweisung:
XML->Options = TXMLDocOptions() <<doAutoSave; // alternativ XML->Options = XML->Options <<doAutoSave;
funktioniert bei mir nicht. Ist das ein Bug? In den Borland Newsgroups
hatten andere auch schon das Problem.Gruß,
Alexander