vb下如何关于对象的拷贝

dinojy2011 2011-12-20 11:49:40
'vd code
dim obj1 as object
dim obj2 as object
dim xmldoc as DOMDocument
set xmldoc = new DOMDocument
xmldoc.loadXML "<root>abc</root>"
set obj1 = xmldoc
'replace
xmldoc.loadXML replace(xmldoc.xml,"oo","00")
set obj2 = xmldoc

debug.print obj1.xml
debug.print obj2.xml
结果
打印出来的是
<r00t>abc</r00t>
<r00t>abc</r00t>
而我希望得到
<root>abc</root>
<r00t>abc</r00t>
ojb1 obj2 都指向了同一个对象,而 DOMDocument并没有提代类似 clone 方法,只有一个在这种情况用不上cloneNode
请问vb 下关于对象的拷贝应该如何写?
...全文
110 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
胡楮智 2011-12-20
  • 打赏
  • 举报
回复
xmldoc.loadXML xmldoc.xml
debug.print obj1.xml
debug.print replace(obj1.xml,"oo","OO")
dinojy2011 2011-12-20
  • 打赏
  • 举报
回复
不不不,你没懂我意思,我想得到两个对象,
我写了一个类模块,里面有两个属性,属性的类型是 object
一个是CurObj 一个是OldObj ,都是DOMDocument类型。
然后对这两个对象进行 XMLDOM一些 方法之类的操作

set tmpObj as new DOMDocument
tmpObj.load "test.xml"
'此时将tmpObj所有内容 拷贝 Oldobj
set Oldobj = tmpObj ' 我觉得应该这里错了。
'对tmpObj 处理
'处理的过程略
'此时将处理过后的tmpOjb 所有内容拷贝给CurObj
set curobj = tmpobj
'最后得到两个 DOMDocument对象 ,而不是两个指向同一个内存(tmpObj)的对象

胡楮智 2011-12-20
  • 打赏
  • 举报
回复
Dim oElementA As MSXML2.IXMLDOMElement
Dim oElementB As MSXML2.IXMLDOMElement
Set oElementA = Me.XmlRoot.selectSingleNode("root")
Set oElementB = obj1.createElement(repalce(oElementA.name,"oo","OO"))
obj1.appendChild oElementB

debug.print obj1.xml

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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