我有以下VB脚本,我想从名单中删除“NET2 ID”元素 如何删除NET2 ID元素,首先需要验证NET2是否已定义然后将其删除 THX
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
objXMLDoc.load("\\dir\d.xml")
Set objRoot = objXMLDoc.documentElement
Set objExNode = objRoot.removeChild(objRoot.childNodes.item(1))
XML文件:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<root version="3.0">
<names>
<NET1 ID="10.10.10.1-10" />
<NET2 ID="10.10.10.1-10" />
</names>
</root>
答案 0 :(得分:0)
您可以使用XPath确定节点是否存在,然后将其删除。像这样:
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
objXMLDoc.load("\\dir\d.xml")
Set objRoot = objXMLDoc.documentElement
If Not objRoot.selectSingleNode("./names/NET2") Is Nothing Then
Set objExNode = objRoot.firstChild.removeChild(objRoot.firstChild.childNodes(1))
End If
此外,元素NET2是“names”的子元素而不是“root”,它是documentElement,所以
Set objExNode = objRoot.removeChild(objRoot.childNodes.item(1))
成为
Set objExNode = objRoot.firstChild.removeChild(objRoot.firstChild.childNodes(1))
编辑:要添加新节点,您将执行以下操作。 1表示NODE_ELEMENT
Set newNode = objXMLDoc.createNode(1, "NET3", "")
Set id = objXMLDoc.createAttribute("ID")
id.Value = "newIDValue"
newNode.attributes.setNamedItem(id)
objRoot.firstChild.appendChild(newNode)