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))

也不行。

我该如何写??



...全文
137 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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'


8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧