dom对象中如何删除深层节点??

比如有个xml文件.

 1<node1>
 2<node11>
 3<node111>
 4<node1111>
 5<node11111>
 6<node111111>
 7</node111111>
 8<node111112>
 9</node111112>
10</node11111>
11</node1111>
12</node111>
13</node11>
14</node1>

我想只删除结点node111112

我用
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
加载后。

set m_node = objXml.documentElement
m_node.removeChild(m_node.childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(1))

不行
m_node.childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(0).removeChild(m_node.childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(1))

也不行。

我该如何写??

---------------------------------------------------------------

可以参看msdn中下面的函数。

selectSingleNode中指明路径就可以了。

Function FilterRecordsetXMLForChangedRecordsOnly(xml As String) As String
Dim DOMDoc As New MSXML.DOMDocument
Dim DataNode As MSXML.IXMLDOMNode
Dim RemNode As MSXML.IXMLDOMNode
Dim i As Integer, offset As Integer
DOMDoc.async = False
DOMDoc.loadXML xml
Set DataNode = DOMDoc.selectSingleNode("xml/rs:data")
offset = 0
For i = 0 To DataNode.childNodes.length - 1
If DataNode.childNodes(i - offset).nodeName = "z:row" Then
Set RemNode = DataNode.removeChild(DataNode.childNodes(i - offset))
offset = offset + 1
End If
Next
FilterRecordsetXMLForChangedRecordsOnly = DOMDoc.xml
End Function

---------------------------------------------------------------

用getElementsByTagName(),然后removeNamedItem()呢

Published At
Categories with Web编程
comments powered by Disqus