XML 编程简介

2016-02-19 12:50 9 1 收藏

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的XML 编程简介,希望大家看完后能赶快学习起来。

【 tulaoshi.com - Web开发 】

  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 = "EmployeesEmployee id=”12345”Employee_ID12345/Employee_IDNameZhang 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, 指形如NameTomName的节点。它可以包括:Element, Text, Comment, ProcessingInstruction, CDATA, and EntityReference.
  Attribute, 指在Employee id=”12345”中的粗体部分。
  Comment,指形如:!-- my comment -- 的节点。
  Text,指在NameTomName的粗体部分。
  在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 节点
   objNo

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)de = 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_NameCai WuBu/Department_Name
   ManagerZhang Bin/Manager
   Employees
   Employee id="12345"
   Employee_ID12345/Employee_ID
   NameZhang Bin/Name
   Gendermale/Gender
   /Employee
   Employee id="10101"
   Employee_ID10101/Employee_ID
   NameZhang QI/Name
   Genderfemale/Gender
   /Employee
   Employee id="10102"
   Employee_ID10102/Employee_ID
   NameZhang Xia/Name
   Gendermale/Gender
   /Employee
   Employee id="10201"
   Employee_ID10201/Employee_ID
   NameZhangChuang/Name
   Gendermale/Gender
   /Employee
   Employee id="10202"
   Employee_ID10202/Employee_ID
   NameZhang Jun/Name
   Gendermale/Gender
   /

Employee
   /Employees
   /Department
   Department id="102"
   Department_NameKaiFa Bu/Department_Name
   ManagerWang Bin/Manager
   Employees
   Employee id="22345"
   Employee_ID22345/Employee_ID
   NameWang Bin/Name
   Gendermale/Gender
   /Employee
   Employee id="20101"
   Employee_ID20101/Employee_ID
   NameWang QI/Name
   Genderfemale/Gender
   /Employee
   Employee id="20102"
   Employee_ID20102/Employee_ID
   NameWang Xia/Name
   Gendermale/Gender
   /Employee
   Employee id="20201"
   Employee_ID20201/Employee_ID
   NameWang Chuang/Name
   Gendermale/Gender
   /Employee
   Employee id="20202"
   Employee_ID20201/Employee_ID
   NameWang Jun/Name
   Gendermale/Gender
   /Employee
   /Employees
   /Department
  /Company

来源:http://www.tulaoshi.com/n/20160219/1602127.html

延伸阅读
标签: Web开发
WordNet 是普林斯顿大学的一个研究项目,目标是建立英语词汇及其词法关系的数据库。这样的工具可以为 XML 语义应用程序建立很好的基础,比如 Uche Ogbuji 在本专栏以前文章中所提到的能识别同义词的搜索的例子。本期文章中他回顾了基本原理,给出了查询 XML 文档格式的 WordNet 2.0 的代码,这是构建更通用的 XML WordNet 应用程序的第一步...
标签: Web开发
专栏作家 Uche Ogbuji 深入思考了 XMLOpen 会议上提出的几种观点,最近在英国剑桥召开的这次会议是关于 XML 处理的一次盛会。值得注意的课题包括 XML 规格、 Semantic Web、XML 管道、Web Proper Names 和数据类型。他还从实用的角度对 XML Hacks 一书作了进一步分析,上一期文章中已经详细地介绍了这部关于技巧和窍门的书籍。 XMLOpen...
标签: Web开发
用于商业的 XML 格式很混乱,而通用商业语言(Universal Business Language,UBL)就志在统一这个混乱的领域。最近,UBL 背后的小组首次发布了该产品,供公开评审。本文中,Uche Ogbuji 首次对 UBL 作了深入探讨。 正如我在 上一篇专栏文章中提到的那样,通用商业语言(UBL)OASIS 技术委员会在 2001 年 10 月 17 日宣告成立。UBL 是用...
标签: Web开发
XML 作为基本数据格式无疑是成功的。但是 XML 1.0 提出的许多承诺 ― 从统一各企业间的通信方式到使 Web 更智能化 ― 都没有兑现。将 XML 用于共享的语义并因此用于共享的知识,是本专栏的主题。本文中,Ogbuji 先生介绍了迄今为止,开放应用程序组(Open Applications Group)和美国国防部(DoD)沿着这一方向,在最近发展环境中所取得的...
标签: Web开发
知名 XML 专家 Elliotte Rusty Harold 的著作 Effective XML为 XML 技术用户提供了最佳实践。该书中关于 XML 设计问题的多数讨论 Uche Ogbuji 也曾经关注过,在本文中,他以该书为线索,进一步探讨了 XML 设计和最佳实践。请在本文的 讨论论坛上与作者和其他读者分享您对本文的看法。 我的同事 Elliotte Rusty Harold 是一位知名的 XML...

经验教程

641

收藏

78
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部