CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  非技术类

VB中如何操作XMl文档

楼主wanghao2794(王浩)2004-09-01 23:26:32 在 VB / 非技术类 提问

VB中如何操作XMl文档,谁有详细的例子,或是资料。 问题点数:20、回复次数:1Top

1 楼yhbtzy(yhbtzy)回复于 2004-09-02 10:24:24 得分 20

XML   编程简介    
      1.   XML   文档操作    
      1.1   加载一个XML文档    
      Dim   objDoc   As   New   XmlDocument()    
      '--   Load   xml   document   Sample.xml    
      objDoc.Load("Sample.xml")    
         
      1.2   加载一个XML数据    
        Dim   objDoc   As   New   XmlDocument()    
        Dim   strXML   As   String    
        strXML   =   "<Employees><Employee   id=”12345”><Employee_ID>12345</Employee_ID><Name>Zhang   Bin</Name></Employee></Employees>"    
         
        '--   Load   xml   data    
        objDoc.Load(strXML)    
         
      1.3   保存文档    
      '—Save   xml   document    
      objDoc.Save("Sample.xml")    
         
      2   XML   数据的查询    
      最常见的XML数据类型有:Element,   Attribute,Comment,   Text.    
      Element,   指形如<Name>Tom<Name>的节点。它可以包括:Element,   Text,   Comment,   ProcessingInstruction,   CDATA,   and   EntityReference.    
      Attribute,   指在<Employee   id=”12345”>中的粗体部分。    
      Comment,指形如:<!--   my   comment   -->   的节点。    
      Text,指在<Name>Tom<Name>的粗体部分。    
      在XML中,可以用XmlNode对象来参照各种XML数据类型。    
      2.1   查询已知绝对路径的节点(集)    
      objNodeList   =   objDoc.SelectNodes(“Company/Department/Employees/Employee”)    
      或者    
      objNodeList   =   objNode.SelectNodes(“/Company/Department/Employees/Employee”)    
      以上两种方法可返回一个NodeList对象,如果要返回单个节点可使用SelectSingleNode方法,该方法如果查询到一个或多个节点,返回第一个节点;如果没有查询的任何节点返回   Nothing。例如:    
      objNode   =   objNode.SelectSingleNode(“/Company/Department/Employees/Employee”)    
      If   Not   (objNode   is   Nothing)   then    
        ‘-   Do   process    
      End   If    
      2.2   查询已知相对路径的节点(集)    
      可使用类似于文件路径的相对路径的方式来查询XML的数据    
      objNode   =   objDoc.SelectSingleNode(“Company/Department”)    
      objNodeList   =   objNode.SelectNodes(“../Department)    
      objNode   =   objNode.SelectNode(“Employees/Employee”)    
      2.3   查询已知元素名的节点(集)    
      在使用不规则的层次文档时,由于不知道中间层次的元素名,可使用//符号来越过中间的节点,查询其子,孙或多层次下的其他所有元素。例如:    
      objNodeList   =   objDoc.SelectNodes(“Company//Employee”)    
      2.4   查询属性(attribute)节点    
      以上的各种方法都返回元素(element)节点(集),返回属性(attribute),只需要采用相应的方法,在属性名前加一个@符号即可,例如:    
      objNodeList   =   objDoc.SelectNodes(“Company/Department/Employees/Employee/@id”)    
      objNodeList   =   objDoc.SelectNodes(“Company//@id”)    
      2.5   查询Text节点    
      使用text()来获取Text节点。    
      objNode   =   objDoc.SelectSingleNode(“Company/Department/Deparmt_Name/text()”)    
      2.6   查询特定条件的节点    
      使用[]符号来查询特定条件的节点。例如:    
      a.   返回id号为   10102的Employee节点    
        objNode   =   objDoc.SelectSingleNode(“Company/Department/Employees/Employee[@id=’10102’]”)    
      b.   返回Name为Zhang   Qi的Name   节点    
        objNode   =   objDoc.SelectSingleNode(“Company/Department/Employees/Employee/Name[text()=’Zhang   Qi’]”)    
      c.   返回部门含有职员22345的部门名称节点    
      objNode   =   objDoc.SelectSingleNode("Company/Department[Employees/Employee/@id='22345']/Department_Name")    
      2.7   查询多重模式的节点    
      使用   |   符号可以获得多重模式的节点。例如:    
      objNodeList   =   objDoc.SelectNodes(“Company/Department/Department_Name   |   Company/Department/Manager”)    
      2.8   查询任意子节点    
      使用*符号可以返回当前节点的所有子节点。    
      objNodeList   =   objDoc.SelectNodes(“Company/*/Manager)    
      或者    
      objNodeList   =   objNode.ChildNodes    
         
      3   XML数据的编辑    
      3.1   增加一个元素的属性(attribute)节点    
      Dim   objNodeAttr   As   XmlNode    
        objNodeAttr   =   objDoc.CreateAttribute("id",   Nothing)    
        objNodeAttr.InnerXml   =   "101"    
      objNode.Attributes.Append(objNodeAttr)    
      3.2   删除一个元素的属性    
      objNode.Attributes.Remove(objNodeAttr)    
      3.3   增加一个子元素(Element)    
      Dim   objNodeChild   As   XmlNode    
      objNodeChild   =   objDoc.CreateElement(Nothing,   "ID",   Nothing)    
      objNodeChild.InnerXml   =   "101"    
      objNode.AppendChild(objNodeChild)    
      3.4   删除一个子元素    
      objNode.RemoveChild(objNodeChild)    
      3.5   替换一个子元素    
      objNOde.ReplaceChild(newChild,oldChild)    
         
      4   参考数据    
      <?xml   version="1.0"   encoding="UTF-8"?>    
      <Company>    
        <Department   id="101">    
        <Department_Name>Cai   WuBu</Department_Name>    
        <Manager>Zhang   Bin</Manager>    
        <Employees>    
        <Employee   id="12345">    
        <Employee_ID>12345</Employee_ID>    
        <Name>Zhang   Bin</Name>    
        <Gender>male</Gender>    
        </Employee>    
        <Employee   id="10101">    
        <Employee_ID>10101</Employee_ID>    
        <Name>Zhang   QI</Name>    
        <Gender>female</Gender>    
        </Employee>    
        <Employee   id="10102">    
        <Employee_ID>10102</Employee_ID>    
        <Name>Zhang   Xia</Name>    
        <Gender>male</Gender>    
        </Employee>    
        <Employee   id="10201">    
        <Employee_ID>10201</Employee_ID>    
        <Name>ZhangChuang</Name>    
        <Gender>male</Gender>    
        </Employee>    
        <Employee   id="10202">    
        <Employee_ID>10202</Employee_ID>    
        <Name>Zhang   Jun</Name>    
        <Gender>male</Gender>    
        </Employee>    
        </Employees>    
        </Department>    
        <Department   id="102">    
        <Department_Name>KaiFa   Bu</Department_Name>    
        <Manager>Wang   Bin</Manager>    
        <Employees>    
        <Employee   id="22345">    
        <Employee_ID>22345</Employee_ID>    
        <Name>Wang   Bin</Name>    
        <Gender>male</Gender>    
        </Employee>    
        <Employee   id="20101">    
        <Employee_ID>20101</Employee_ID>    
        <Name>Wang   QI</Name>    
        <Gender>female</Gender>    
        </Employee>    
        <Employee   id="20102">    
        <Employee_ID>20102</Employee_ID>    
        <Name>Wang   Xia</Name>    
        <Gender>male</Gender>    
        </Employee>    
        <Employee   id="20201">    
        <Employee_ID>20201</Employee_ID>    
        <Name>Wang   Chuang</Name>    
        <Gender>male</Gender>    
        </Employee>    
        <Employee   id="20202">    
        <Employee_ID>20201</Employee_ID>    
        <Name>Wang   Jun</Name>    
        <Gender>male</Gender>    
        </Employee>    
        </Employees>    
        </Department>    
      </Company>    
  Top

相关问题

  • 用vb msxml操作xml文档的中文的问题
  • 用vb msxml操作xml文档的中文的问题
  • 关于XML文档操作
  • VB如何操作WORD文档?
  • 怎么样操作XML文档?
  • 请教在vb中操作notes文档的问题
  • VB下操作Lotus数据库,怎样创建新文档?
  • VB中能否监控得到对word文档的操作?
  • Linux上能用C++操作XML文档吗?,用XML DOM或SAX。
  • 对XML文档中的数据能不能进行SELECE操作????

关键词

  • 节点
  • 查询
  • 文档
  • 属性
  • 数据
  • objdoc
  • objnode
  • objnodelist
  • objnodeattr
  • selectnodes

得分解答快速导航

  • 帖主:wanghao2794
  • yhbtzy

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo