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-Key: 351295

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

Printed on: April 18, 2024 at 22:04 o'clock

Member: rubberman
rubberman Oct 10, 2017 updated at 20:25:29 (UTC)
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
Member: aletri
aletri Oct 11, 2017 at 06:37:59 (UTC)
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
Member: rubberman
Solution rubberman Oct 11, 2017 at 06:53:46 (UTC)
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
Mitglied: 134464
134464 Oct 11, 2017 updated at 07:03:55 (UTC)
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.