Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml Can';无法使RemoveChild函数在vbscript中工作_Xml_Vbscript - Fatal编程技术网

Xml Can';无法使RemoveChild函数在vbscript中工作

Xml Can';无法使RemoveChild函数在vbscript中工作,xml,vbscript,Xml,Vbscript,我一直在努力使用这种方法,这似乎相当简单 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.documentEle

我一直在努力使用这种方法,这似乎相当简单

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 objNode = objXML.documentElement.selectSingleNode("/Servers/Server/Modules/Module/ModuleParameter[ServiceName='OldService']")
如果我将中间部分替换为:

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)

它告诉我“需要对象”。我在网上搜索过,我看到的所有示例都使用了这三段代码的变体,它们应该可以工作。我错过了什么?谢谢你的帮助

我终于明白了。事实上是这样的:

objXML.documentElement.removeChild(objNode)
Set objNode = objXML.documentElement.selectSingleNode("/Servers/Server/Modules/Module/ModuleParameter[ServiceName='OldService']")
这就是问题的根源。我在树中缺少了一个级别,还必须添加另一个说明符才能得到我想要的。因此:

Set objNode = objXML.documentElement.selectSingleNode("//Servers/Server/Modules/Module[ModuleName='Services']/ModuleParameters/ModuleParameter[ServiceName='OldService']")
很好