Hallo,
Ich bins nochmals. Hab jetzt geschafft, auf die parentNodes zuzugreifen und so die Dateinamen zu erzeugen (in VBScript):
Set oEntryList = oXML.getElementsByTagName("Eintrag")
For Each oEntry In oEntryList
sPath = oEntry.parentNode.parentNode.getAttribute("Typ")
sPath = sPath & "" & oError.parentNode.getAttribute("id")
sPath = sPath & "\entry_" & oError.getAttribute("id") & ".html"
' aus oEntry-Element vollständiges XML-Dokument machen (?)
' Datei öffnen
' oEntry-Dokument mit XSL tranformieren
' Ausgabe speichern
NextWie mach ich nun aus dem oEntry-Element ein vollständiges XML-Dokument? Am einfachsten ist es natürlich, von Hand <Root><Hauptgruppe><Untergruppe> drum zu packen, jedoch müsste ich dann extra alle Attribute nochmals auslesen. Wenn neue Attribute hinzu kommen muss ich dann aber wieder die Funktion anpassen, was ich lieber nicht möchte. Gibt es eine bessere Möglichkeit?
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). Außerdem gibt es document.createDocumentFragment, das erzeugt dann etwas Dokument-ähnliches, das sich möglicherweise transformieren lässt.
Soweit ich weiß erzeugt man Dokumente in ASP/VBScript standardmäßig so:
Server.CreateObject("Microsoft.XMLDOM")
(In JScript new ActiveXObject("MSXML2.DOMDocument").)
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().
(Man korrigiere/ergänze mich.)
Mathias