以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  Xml  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55495)

--  作者:bagabaga
--  发布时间:2014/8/18 10:15:00
--  Xml
请问,有二个Xml文件,需要用第二个文件的节点替代第一个文件的节点,如何编写?用ReplaceChild只能换同一个文件的节点

Dim doc As New System.XML.XmlDocument()
        Doc.Load("D:\\桌面\\bb.xml")
Dim doc1 As New System.XML.XmlDocument()
       doc1.Load("D:\\桌面\\aa.xml")

        Dim root As System.XML.XmlNode = doc.DocumentElement
        Dim ndlist As System.XML.XmlNodelist = Doc.GetElementsByTagName("title") 
        Dim ndlist1 As System.XML.XmlNodelist = Doc1.GetElementsByTagName("title") 
      
        \'Replace the title element.
        root.ReplaceChild(ndlist1(1), ndlist(1))

aa.xml
<book genre="novel" ISBN="1-861001-57-5">
  <title>Pride And Prejudice</title>
  <title>aaaa And aaaaaaaaaa</title>
</book>

bb.xml
<book genre="novel" ISBN="1-861001-57-5">
  <title>Pride And Prejudice</title>
  <title>The Handmaid\'s Tale</title>
  <title>ccccc And ccccccccc</title>
</book>

--  作者:有点甜
--  发布时间:2014/8/18 10:20:00
--  
 呃,绕一个弯而已,你在第一个文件添加一个节点,再替换。
--  作者:bagabaga
--  发布时间:2014/8/18 10:28:00
--  
第二个节点是软件生成的,下面有2000多个子节点,有什么办法可以直接替换
--  作者:有点甜
--  发布时间:2014/8/18 10:33:00
--  

 简单的方法,你就把xml当成字符串去操作。

 

 1、截取到开始替换的位置和结束替换的位置;

 

 2、把第二个文件的字符串,替换原来的那个字符串;

 

 3、保存文件。


--  作者:有点甜
--  发布时间:2014/8/18 10:40:00
--  
以下是引用bagabaga在2014-8-18 10:28:00的发言:
第二个节点是软件生成的,下面有2000多个子节点,有什么办法可以直接替换

 

参考,先加入,然后再替换。

 

http://msdn.microsoft.com/zh-cn/library/system.xml.xmldocument.importnode%28v=vs.80%29.aspx