Per VBS bestimmten Knoten aus XML Datei entfernen
Guten Morgen allerseits
Mit diesem Script möchte ich bestimmten Knoten aus XML Datei entfernen.
Der Script wird ohne Fehlermeldung ausgeführt aber in der XML Datei verändert sich nichts!
Ich brauche eure Hilfe!
Hier der Script:
Dies ist nur ein Auszug zum besseren Verständnis, in der original Datei
sind dutzende dieser Einträge vorhanden!
Mit diesem Script möchte ich bestimmten Knoten aus XML Datei entfernen.
Der Script wird ohne Fehlermeldung ausgeführt aber in der XML Datei verändert sich nichts!
Ich brauche eure Hilfe!
Hier der Script:
Set xmlDoc = CreateObject("MSXML2.DOMDocument.6.0")
xmlDoc.Async = "False"
xmlDoc.Load("C:\mein Pfad\AutogenDescriptons.xml")
Set colNodes=xmlDoc.selectNodes _
("/Autogen.SeasonalModels/ModelEntry [id='{28309303-cda3-4047-9c35-511131a46063}']")
For Each objNode in colNodes
xmlDoc.documentElement.removeChild _
(objNode)
Next
xmlDoc.Save "C:\mein Pfad\AutogenDescriptions.xml"
Dies ist nur ein Auszug zum besseren Verständnis, in der original Datei
sind dutzende dieser Einträge vorhanden!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 288462
Url: https://administrator.de/contentid/288462
Ausgedruckt am: 24.11.2024 um 08:11 Uhr
9 Kommentare
Neuester Kommentar
Dein xPath-Filter war nicht korrekt ... Erstens hattest du nur einen führenden Backslash angegeben, was bedeutet das du vom Root aus die Knoten suchst, was aber in deinem Fall nicht korrekt ist das der Knoten ein Subknoten des Document-Root ist und zweitens hast du das @ vor dem Attribut vergessen ....
Gruß jodel32
Set xmlDoc = CreateObject("MSXML2.DOMDocument.6.0")
xmlDoc.Async = False
xmlDoc.Load("C:\mein Pfad\AutogenDescriptons.xml")
Set colNodes = xmlDoc.selectNodes("//Autogen.SeasonalModels/ModelEntry[@id='{28309303-cda3-4047-9c35-511131a46063}']")
If not colNodes is Nothing then
For each objNode in colNodes
objNode.ParentNode.RemoveChild(objNode)
Next
xmlDoc.Save "C:\mein Pfad\AutogenDescriptions.xml"
End if
Kann ich nicht bestätigen, läuft hier einwandfrei ...
Da kannst du uns und dir nur helfen indem du die ganze Datei mal postest oder besser via PM zuschickst.
Da kannst du uns und dir nur helfen indem du die ganze Datei mal postest oder besser via PM zuschickst.
Ergebnis nach dem Anwenden mit exakt dem selben Code von oben, so wie du es haben wolltest....
-edit- Code geändert ?? Dann bitte auch mit Codetags!!
Aber auch mit dem kompletten Code selbes positives Ergebnis hier ...
-edit- Code geändert ?? Dann bitte auch mit Codetags!!
Aber auch mit dem kompletten Code selbes positives Ergebnis hier ...
leider klappt es bei mir nicht hab nur die Pfade angepasst !
Die Testdatei wie die Originaldatei werden komplett geleert!!
Moin,Die Testdatei wie die Originaldatei werden komplett geleert!!
kann @114757 hier beipflichten, funktioniert hier ebenfalls einwandfrei. Da muss entweder deine Datei beschädigt sein oder dein Rechner kommt mit der großen XML-Datei einfach nicht zurecht.
Codetags ?
Code-TagsGruß grexit
Zitat von @aletri:
Habe Code leicht abgeändert jetzt funktionierts bei mir auch !?:
xmlDoc.Async = "False"
Les doch bitte malHabe Code leicht abgeändert jetzt funktionierts bei mir auch !?:
xmlDoc.Async = "False"
https://msdn.microsoft.com/de-de/library/ms761398(v=vs.85).aspx
Da kannst du sehen das die Eigenschaft async einen Boolean-Wert erwartet und keinen String was du hier machst. Einen nicht leereren String würde der Compiler als True werten, was in diesem Fall genau das Gegenteil bewirkt weil wir hier False benötigen damit das Dokument synchron und nicht asynchron geladen wird.
Genau damit läuft das Skript hier nämlich in einen Fehler. Muss bei dir also irgendeinen anderen Grund gehabt haben.
Kann ja nicht angehen das bei dir sich die Welt anders rum dreht, @122990 hats ja auch bestätigt.