Hallo Mathias
Ich kann kein VBScript / kenne die Microsoft XML Core Services nicht, aber allgemein gibt es im DOM die Methode createDocument beim implementation-Objekt, was am Document-Objekt hängt (also schematisch document.implementation.createDocument).
Danke für den Hinweis. Das werde ich mir mal genauer anschauen.
Außerdem gibt es document.createDocumentFragment, das erzeugt dann etwas Dokument-ähnliches, das sich möglicherweise transformieren lässt.
Wenn ich das richtig sehe gibt mir diese Methode einen DOMNode oder eine DOMNodeList zurück. Ich muss dieses Fragment nicht selbst erzeugen, ich kann es mit getElementsByTagName() oder selectNodes() extrahieren. Transformieren kann ich dieses leider nicht mit meinem Stylesheet, weil ich dieses nur für komplette Dokumente verwenden möchte. Oder ist das so üblich, XSL auf Fragmente anzuwenden?
In einem so erzeugtes Dokument kannst du die Elemente Hauptgruppe und Untergruppe erzeugen und den oEntry-Elementknoten importieren. Das geht in DOM über die Methode document.importNode(), MSXML kennt aber meines Wissens nur Elementknoten.cloneNode().
Mein Problem ist, dass ich einen Knoten ohne Unterknoten, jedoch mit all den Attributen kopieren möchte. Aber die Attribute sind ja eigentlich auch Knoten, darum geht's wohl nicht.
Ich hab's jetzt so gelöst:
Einer Funktion namens getDOMParents(ByRef oDOMElement, ByRef sXML) übergebe ich den Eintrags-Knoten und dessen XML-Code. Die Funktion schaut ob oDOMElement.parent.nodeName nicht gleich "#document" ist, weil wir dann beim Root-Element angelangt sind. Ist dem nicht so, so wird das parent-Element mit all seinen Attributen um den XML-String gepackt und die Funktion nochmals für das Eltern-Element aufgerufen. Zum Schluss wird noch die XML-Deklaration an den String angehängt und fertig ist mein Dokument.
Jetzt hab ich wieder Zeit mich mit den Stylesheets rumzuschlagen... Kennt jemand einen guten Validator / Parser für XML-Dateien aller Art? Mein IE schluckt irgendwie alles und der auf dem Server hat noch nie was von brauchbaren Fehlermeldungen gehört ;-).
Gruss und Dank für die Hilfe
Tom2