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

蝈蝈俊 2002-03-20 02:54:55
比如有个xml文件.

<node1>
<node11>
<node111>
<node1111>
<node11111>
<node111111>
</node111111>
<node111112>
</node111112>
</node11111>
</node1111>
</node111>
</node11>
</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))

也不行。

我该如何写??



...全文
109 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
q1415926 2002-03-23
用getElementsByTagName(),然后removeNamedItem()呢
  • 打赏
  • 举报
回复
蝈蝈俊 2002-03-20
搞定,原来是一个参数传错的问题。
可以参看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

  • 打赏
  • 举报
回复
蝈蝈俊 2002-03-20
老是莫名其妙的报:

Microsoft VBScript 运行时错误 错误 '800a0005'

无效的过程调用或参数: 'sss.removeChild'


  • 打赏
  • 举报
回复
相关推荐
发帖
XML/XSL
加入

8870

社区成员

XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
申请成为版主
帖子事件
创建了帖子
2002-03-20 02:54
社区公告
暂无公告