如何通过编程文档对象模型 (DOM) 中合并两个 XML 文档中的数据

文章翻译 文章翻译
文章编号: 286817 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

本文介绍一个 Visual Basic 代码示例,该示例演示如何进行编程,MSXML 文档对象模型 (DOM) 来合并两个相同的 XML 文档中包含的数据。

更多信息

合并到一个单独的 XML 文档中包含两个或多个相同的 XML 文档中的数据是很常见的要求。代码和本文中的所述的方法可以被进一步展开到合并三个或更多个 XML 文档中。 如果通过并排模式中安装了较新版本的 MSXML,则必须显式运行的代码示例使用全局唯一标识符 (guid) 或为该版本的 ProgIDs。例如对于只能在通过并排模式下安装 MSXML 4.0 版。有关与 MSXML 4.0 分析器中运行的代码示例所需的代码更改的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
305019信息: MSXML 4.0 特定的 guid 和 ProgIds
  1. 在微软记事本中打开一个空文本文件。
  2. 复制,并将下面的 XML 代码粘贴到记事本,然后将文件另存为 xmlbooks1.xml
    <?xml version="1.0"?>
    <Books>
       <Book>
          <Title>XML Step By Step</Title>
          <Publisher>MS Press</Publisher>
       </Book>
       <Book>
          <Title>Developing XML Solutions</Title>
          <Publisher>MS Press</Publisher>
       </Book>
    </Books>
    					
  3. 在记事本中打开一个新的文本文件。
  4. 复制,并将下面的 XML 代码粘贴到记事本,然后将文件另存为 xmlbooks2.xml
    <?xml version="1.0"?>
    <Books>
       <Book>
          <Title>Beginning XML</Title>
          <Publisher>Wrox</Publisher>
       </Book>
       <Book>
          <Title>Professional XML</Title>
          <Publisher>Wrox</Publisher>
       </Book>
    </Books>
    					
  5. 在 Visual Basic 6.0 中打开一个新的标准 EXE 项目。默认情况下创建 Form1。
  6. 项目 菜单上,设置项目的引用为 Microsoft XML、 v3.0 或更高版本。
  7. 将放置命令按钮拖到 Form1 上。默认情况下创建 Command1。
  8. 复制并将下面的代码粘贴到命令按钮的 Click 事件过程:
    ' In the ProgIDs below, change 30 to reflect the installed version of the Microsoft XML Parser.
    ' For example, use Dim doc1 As MSXML2.DOMDocument40 for MSXML 4.
    
    Dim doc1 As MSXML2.DOMDocument30
    Dim doc2 As MSXML2.DOMDocument30
    Dim doc2Node As MSXML2.IXMLDOMNode
    
    Set doc1 = New MSXML2.DOMDocument30
    Set doc2 = New MSXML2.DOMDocument30
    
    doc1.Load "d:\xmlbooks1.xml"
    doc2.Load "d:\xmlbooks2.xml"
    
    For Each doc2Node In doc2.documentElement.childNodes
      doc1.documentElement.appendChild doc2Node
    Next
    
    MsgBox doc1.xml
    
    doc1.save "d:\AllXMLBooks.xml"
    					
  9. 前面的代码加载到两个 MSXML DOMDocument 对象的步骤 1 到 4 中创建的两个 XML 文档。该代码然后将在 xmlbooks2.xml 数据合并到包含数据的 xmlbooks1.xml DOMDocument 对象的实例。这是通过 doc2 DOMDocument 对象的文档元素的子节点中循环,并将每个追加到 doc1 DOMDocument 的文档元素来实现。最后,合并的 XML 是显示在一个消息框中,并保存到磁盘上的文件。
  10. 在要查看合并的 XML 文档,并注意下面的 XML 的 Microsoft Internet Explorer 中打开 AllXMLBooks.xml
    <?xml version="1.0"?>
    <Books>
    	<Book>
    		<Title>XML Step By Step</Title>
    		<Publisher>MS Press</Publisher>
    	</Book>
    	<Book>
    		<Title>Developing XML Solutions</Title>
    		<Publisher>MS Press</Publisher>
    	</Book>
    	<Book>
    		<Title>Beginning XML</Title>
    		<Publisher>Wrox</Publisher>
    	</Book>
    	<Book>
    		<Title>Professional XML</Title>
    		<Publisher>Wrox</Publisher>
    	</Book>
    </Books>
    					

属性

文章编号: 286817 - 最后修改: 2004年7月1日 - 修订: 3.2
这篇文章中的信息适用于:
  • Microsoft XML Parser 2.0
  • Microsoft XML Parser 2.5
  • Microsoft XML Parser 2.6
  • Microsoft XML Parser 3.0
  • Microsoft XML Core Services 4.0
  • Microsoft Visual Basic 5.0 企业版
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 3
  • Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 4
  • Microsoft Visual Basic 6.0 专业版
关键字:?
kbmt kbhowto KB286817 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 286817
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com