以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  [求助]如何将两个DOM对象合并呢?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=40339)


--  作者:topgunqq
--  发布时间:11/21/2006 3:17:00 PM

--  [求助]如何将两个DOM对象合并呢?
我在asp中定义了两个DOM对象,分别加载了两个结构相同的XML文件,怎么实现将这两个DOM对象合并成一个对象来处理呢?

求高手指点!先谢了!


--  作者:Qr
--  发布时间:11/22/2006 9:08:00 AM

--  
appendChild(),将其中一个appendChild给另一个,但要注意,XML是不能同时有多个根节点的,稍加处理就可以了。
--  作者:topgunqq
--  发布时间:11/22/2006 10:10:00 AM

--  非常感谢版主的帮助!
我试一下。呵呵!
--  作者:topgunqq
--  发布时间:11/22/2006 10:22:00 PM

--  
没有成功.

以下为我的代码:

'获取XML数据一
XmlUrl = "http://localhost/XML/1/getxml.asp"
Set XmlHttp=Server.CreateObject("Microsoft.XMLHTTP")
XmlHttp.Open "GET",XmlUrl,False
XmlHttp.send

'创建第一个XML文档对象,并加载通过网络获得的第一个XML数据
set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async=true
xmlDoc.ValidateOnParse=False
xmlDoc.load(XmlHttp.ResponseXML)

if xmlDoc.parseError then
'如果加载第一个XML数据出错则结束.
 Response.Write "<p class=err>" & xmlDoc.parseError.reason & "</p>" & vbcrlf
                Response.End
else
 '获取第二个XML数据
 XmlUrl = "http://localhost/XML/2/getxml.asp"
 Set XmlHttp=Server.CreateObject("Microsoft.XMLHTTP")
 XmlHttp.Open "GET",XmlUrl,False
 XmlHttp.send

 '创建准备追加的XML文档对象,并加载获取的第二个XML数据
 set xmlDocAdd=Server.CreateObject("Microsoft.XMLDOM")
 xmlDocAdd.async=true
 xmlDocAdd.ValidateOnParse=False
 xmlDocAdd.load(XmlHttp.ResponseXML)

                '将第二个XML数据追加到第一个XML对象中
 set rootelem=xmlDocAdd.selectNodes("//root//BookInfo")
 if rootelem.length<>0 then
  For i=0 to rootelem.length-1
   xmlDoc.appendChild(rootelem(i))
  next
 end if
end if

错误提示为:
错误类型:
msxml3.dll (0x80004005)
XML 文档只能有一个顶层元素。
问题出现在
xmlDoc.appendChild(rootelem(i))
这一行

还要麻烦版主再指点一下.非常感谢!


--  作者:Qr
--  发布时间:11/23/2006 12:06:00 PM

--  
xmlDoc.documentElement.appendChild(rootelem(i))

--  作者:topgunqq
--  发布时间:11/23/2006 6:51:00 PM

--  
终于调试通过了!

非常感谢!!!


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms