Я боролся с этим методом, что кажется довольно простым.
Dim objXML, objNode, objDeleted, objRoot
Set objXML = CreateObject("MSXML2.DOMDocument.4.0")
Set objNode = CreateObject("MSXML2.DOMDocument.4.0")
objXML.async = false
objXML.Load("C:\Config.xml")
Set objNode = objXML.documentElement.selectSingleNode("/Servers/Server/Modules/Module/ModuleParameter[ServiceName='OldService']")
objXML.documentElement.removeChild(objNode)
objXML.Save ("C:\Config.xml")
Set objXML = nothing
Set objRoot = nothing
Set objDeleted = nothing
Set objNode = nothing
Это дает мне ошибку "Недопустимый вызов процедуры или аргумент" для строки:
objXML.documentElement.removeChild(objNode)
Если заменить среднюю часть на:
Set objRoot = objXML.documentElement
Set objNode = objXML.documentElement.selectSingleNode("/Servers/Server/Modules/Module/ModuleParameter[ServiceName='OldService']")
objRoot.removeChild(objNode)
Это говорит о том же.Наконец, если я просто попробую:
Set objNode = objXML.documentElement.selectSingleNode("/Servers/Server/Modules/Module/ModuleParameter[ServiceName='OldService']")
objNode.parentNode.removeChild(objNode)
Это говорит мне "объект требуется".Я искал в Интернете, и во всех примерах, которые я вижу, используются варианты этих трех частей кода, и они предположительно работают.Что мне здесь не хватает?Спасибо за любую помощь!