aletri
Goto Top

Per vbscript element aus xml datei löschen

guten abend an alle

nun folgt der gegenzug nämlich <Path>C:\Program Files\Lockheed Martin\Prepar3D v4\ATiLibs\scenery</Path> entfernen!

<?xml version="1.0"?>  
 -<DynPlacement.Document>
 -<Config>
 <Paths>
 <Path>C:\Program Files\Lockheed Martin\Prepar3D v4\Ecosystem\Europe\Italy\ATiAncona\scenery</Path>
 </Paths>
 </Config>
 </DynPlacement.Document>

Script löscht die Zeile nicht zeigt aber auch keinen Fehler an?
Set xmlDoc = _
  CreateObject("Microsoft.XMLDOM")  

xmlDoc.Async = False
xmlDoc.Load("C:\Program Files\Lockheed Martin\Prepar3D v4\ATiLibs\Scenery\OF_Config.xml")  

Set colNodes=xmlDoc.selectNodes _
  ("/DynPlacement.Document/Config/Paths " & _  
   "[Path = 'C:\Program Files\Lockheed Martin\Prepar3D v4\Ecosystem\Italy\ATiAncona\scenery']")  

For Each objNode in colNodes
  xmlDoc.documentElement.removeChild _
    (objNode)

Next
  
 xmlDoc.Save ("C:\Program Files\Lockheed Martin\Prepar3D v4\ATiLibs\Scenery\OF_Config.xml")  

nochmals besten dank für hint

Content-ID: 351295

Url: https://administrator.de/contentid/351295

Ausgedruckt am: 24.11.2024 um 06:11 Uhr

rubberman
rubberman 10.10.2017 aktualisiert um 22:25:29 Uhr
Goto Top
1) Wenn du mit XPath arbeiten willst, musst du die entsprechende Eigenschaft spezifizieren.
2) Da das "Europe" in deiner Suchzeichenfolge fehlt, kann nichts gefunden werden.
3) Der gefundene Knoten ist kein Kindknoten des Rootelements

Set xmlDoc = _
  CreateObject("Microsoft.XMLDOM")  

xmlDoc.Async = False
xmlDoc.setProperty "SelectionLanguage", "XPath"  
xmlDoc.Load("C:\Program Files\Lockheed Martin\Prepar3D v4\ATiLibs\Scenery\OF_Config.xml")  

Set colNodes=xmlDoc.selectNodes _
  ("/DynPlacement.Document/Config/Paths " & _  
   "[Path='C:\Program Files\Lockheed Martin\Prepar3D v4\Ecosystem\Europe\Italy\ATiAncona\scenery']")  

For Each objNode in colNodes
  objNode.parentNode.removeChild(objNode)
Next

xmlDoc.Save("C:\Program Files\Lockheed Martin\Prepar3D v4\ATiLibs\Scenery\OF_Config.xml")  
Grüße
rubberman
aletri
aletri 11.10.2017 um 08:37:59 Uhr
Goto Top
guten morgen rubberman

besten dank
funktioniert aber das element "Paths" wird auch mitgelöscht . müsste aber stehen bleiben "<Paths/>"!
das xml file müsste nach dem löschen so ausehen:

<?xml version="1.0"?>
-<DynPlacement.Document>
-<Config>
<Paths/>
</Config>
</DynPlacement.Document>

grüsse
aletri
rubberman
Lösung rubberman 11.10.2017 um 08:53:46 Uhr
Goto Top
Ändere das doch einfach face-wink
Set colNodes=xmlDoc.selectNodes _
  ("/DynPlacement.Document/Config/Paths/Path " & _  
   "[child::text()='C:\Program Files\Lockheed Martin\Prepar3D v4\Ecosystem\Europe\Italy\ATiAncona\scenery']")  
Grüße
rubberman
134464
134464 11.10.2017 aktualisiert um 09:03:55 Uhr
Goto Top
child::text()
Statt dem kann man auch einen einzelnen Punkt (.) verwenden.
Ändere das doch einfach
Wenn man sich seine Threads die letzten Jahre ansieht, will er das anscheinend nicht lernen, sondern lässt das hier machen.
Totes Hirn schreibt schneller als es liest.