《XML实用教程》PPT课件.ppt_第1页
《XML实用教程》PPT课件.ppt_第2页
《XML实用教程》PPT课件.ppt_第3页
《XML实用教程》PPT课件.ppt_第4页
《XML实用教程》PPT课件.ppt_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XML实用教程 袁华炜共14周每周 2 2学时 教学目的和要求 XML技术应用 是一门侧重于软件应用的选修课程 其任务是 让学生了解掌握XML的基本语法 学会使用C 语言对XML文档进行数据的遍历 增加 修改和删除 XMLWebService等 并能够在实际编程中使用XML文档做为数据源 以解决实际中的问题 XML概述 什么是Html 什么是XML Html与XML的区别和联系 什么是Html HTML指的是超文本标记语言 HyperTextMarkupLanguage HTML不是一种编程语言 而是一种标记语言 markuplanguage 标记语言是一套事先定义好的标记标签 markuptag HTML使用标记标签来描述网页 Html标签 张三用户ID 001公司 A公司EMAIL zhang aaa com电话 010 62345678地址 五街1234号城市 北京市省份 北京李四用户ID 002公司 B公司EMAIL li bbb org电话 021 87654321地址 南京路9876号城市 上海市省份 上海 什么是XML XML指可扩展标记语言 EXtensibleMarkupLanguage XML是一种标记语言 很类似HTMLXML的设计宗旨是传输数据 而非显示数据XML标签没有被预定义 您需要自行定义标签 XML被设计为具有自我描述性 XML是W3C的推荐标准 XML标签 张三001A公司zhang aaa com 010 62345678五街1234号北京市北京 李四002B公司1i bbb org 021 87654321南京路9876号上海市上海我们已经见过的xml文档 config Html与XML的区别和联系 Html与XML的区别和联系 置标语言家谱表 XML的特性 实现不同应用程序之间的数据交互 一种数据 多种样式 实现数据的分布式处理 简单易学 功能强大 XML语法 一个XML文档最基本构成根元素 一般元素注释处理指令PI数据块CDATA节作用上例出现的逻辑要素 XML文档结构解析 XML技术应用计算机贾素玲ISBN 9787302149583清华大学出版社2007 0724 00元计算机网络教程计算机谢希仁ISBN 7115147094人民邮电出版社2006 0526 00元 XML语法 XML的声明 XML文档的树状结构 有且仅有一个根目录 XML文档结构文档声明处理指令注释元素与标记属性预定义实体的引用CDATA节命名空间良构的XML文档有效的XML文档 合法的XML文档 XML文档结构解析 一个XML文档结构是由文档头部分和文档体两个主要部分 以及一个可选的文档尾组成的 其中 文档的头部 也称序言 可选 通常是一些XML声明 处理指令和注释等 文档体 文档中内容信息所在的部分 即根元素的所有内容 文档尾 可选 其内容包括注释 处理指令或空白 而不正确尾声地使用可能会带来不必要的麻烦 所以大多数应用程序都没有文档尾 XML声明 表示文档声明结束 处理指令 处理指令 ProcessingInstruction PI 是包含在XML文档中的一些命令性语句 其用途是为XML解析器提供传送给应用程序或脚本程序的信息 也可以利用处理指令为XML文档指定应用软件或显示文档的方法 处理指令一般具有下列语法格式 处理指令 处理指令必须以 结束 处理指令的名称 用于指明哪个应用程序 或其他对象 需要PI来控制 指令名的大小写必需注意 并且这些指令名已被保留 不能再作为其他处理软件或脚本程序的名称 处理指令信息 是指被传送到处理软件或脚本程序的信息 可由除了 之外的任何连续字符组成 XML文档的元素 元素是XML内容的基本容器 可以包容字符数据 其他元素以及其他标记 注释 PI 实体引用等 大多数XML数据 除了注释 PI 和空格 都必须包含在元素中 也就是说 XML文档的元素包含了真正的数据信息 整个文档的数据内容就是由各种元素按照一定的逻辑结构组织而成的 XML文档的元素 元素是由起始标记 元素内容和结束标记组成 用户把要描述的数据对象放在起始标记和结束标记之间 元素的一般语法格式为 元素内容XML元素的标记名也就是元素的名称 故有时元素与标记二者不严格区分 特殊字符必须被正确地转义 例如 字符必须使用实体引用 进行转义后代替 元素的起始标记和结束标记必须配对使用 元素可以正确地嵌套 但不能交叉 空元素标记 没有元素内容 可以省略结束标记 必须以 符号结束 XML文档的元素 XML文档的元素 计算机网络教程计算机 元素的命名规则 英文名称必须以英文字母或者下划线 开头 中文名称可以以汉字或者下划线 开头 在使用默认编码集的情况下 名称可以由英文字母 数字 下划线 连接符 和句点 构成 在指定了编码集的情况下 则名称中除上述字符外 还可以出现该字符集中的合法字符 元素名称中不能含有空格 元素名称中的英文字母大小写是敏感的 例如 与是三个不同的标记 元素的类型 根据元素是否包含有内容 XML元素可分为非空元素和空元素两种类型 非空元素绝大多数XML元素在起始标记和结束标记之间都包含有元素内容 元素内容称为数据或信息 它们可以是文本 也可以是子元素 起始标记和结束标记将文档的数据进行结构化组织 并确定元素的范围和相互关系 父子关系或兄弟关系 非空元素 XML技术应用贾素玲24 00元 空元素 空元素是指没有任何数据内容的元素 即在开始标记和结束标记之间既没有数据内容也没有子元素 例如下面的元素 人们通常使用空元素的简写形式 即仅使用一个单独的标记 而在标记名称的后面添加一个斜杠 其优点是既简洁又明确地指出该元素不应当有任何内容 例如上面的元素可简写为 空元素的常见应用是包含一个或多个属性 例如 元素的嵌套 一个格式正规的XML数据被定义为一棵简单的层次结构树形式 有且仅有一个顶层元素 称为文档元素或根元素 其他所有元素都必须被包含在这个根元素中 XML文档的属性 在XML文档中 数据主要以在元素形式描述和存储 而属性主要用来保存那些与元素及其内容相关的额外信息 元素的每个属性是一个名称 数值对 名称和数值分别为一个字符串 属性必须在非空标记的开始标记或空标记中声明 语法格式为 内容例如 网络04 XML文档的属性 数据存储在元素中20050814101王芸娇女858872 相关数据存储在属性中王芸娇858872 XML文档的显示 1 使用CSS 层叠样式表 显示XML数据内容 2 使用XSL 可扩展样式语言 显示XML数据内容 XML文档的显示 XML技术应用计算机贾素玲计算机网络教程计算机谢希仁 以下内容保存为 show cssname display block font size 18px color red cate display block font size 18px color blue author display block font size 14px color green XML文档的显示 使用XSL语言 显示XML文档 XSL指扩展样式表语言 EXtensibleStylesheetLanguage XSL可描述如何来显示XML文档 XSL文件本身即是一份XML文件 XSL包括三部分 XSLT 一种用于转换XML文档的语言 XPath 一种用于在XML文档中导航的语言 XSL FO 一种用于格式化XML文档的语言 XML文档的显示 正确的样式表声明把文档声明为XSL样式表的根元素是或 如需访问XSLT的元素 属性以及特性 我们必须在文档顶端声明XSLT命名空间 xmlns xsl http www w3 org 1999 XSL Transform 指向了官方的W3CXSLT命名空间 如果您使用此命名空间 就必须包含属性version 1 0 XML文档的显示 现在要把下面这个XML文档 cdcatalog xml 转换为XHTML EmpireBurlesqueBobDylanUSAColumbia10 901985 XML文档的显示 创建XSL样式表然后创建一个带有转换模板的XSL样式表 cdcatalog xsl MyCDCollectionTitleArtist XML文档的显示 MyCDCollectionTitleArtist XML文档的显示 把XSL样式表链接到XML文档向XML文档 cdcatalog xml 添加XSL样式表引用 EmpireBurlesqueBobDylanUSAColumbia10 901985 XML文档的显示 XML文档的显示 XSLT学习内容 XSLTXSLTXSLTXSLTXSLTXSLTXSLTXSLTapply XML文档的显示 元素 元素用于构建模板 match属性用于关联XML元素和模板 match属性也可用来为整个文档定义模板 match属性的值是XPath表达式 举例 match 定义整个文档 XML文档的显示 MyCDCollectionTitleArtist XML文档的显示 代码解释 由于XSL样式表本身也是一个XML文档 因此它总是由XML声明起始 下一个元素 定义此文档是一个XSLT样式表文档 连同版本号和XSLT命名空间属性 元素定义了一个模板 而match 属性则把此模板与XML源文档的根相联系 元素内部的内容定义了写到输出结果的HTML代码 最后两行定义了模板的结尾 及样式表的结尾 XML文档的显示 元素元素用于提取某个选定节点的值 并把值添加到转换的输出流中 select属性的值是一个XPath表达式 此表达式的工作方式类似于定位某个文件系统 在其中正斜杠可选择子目录 XML文档的显示 元素元素可用于选取指定的节点集中的每个XML元素 TitleArtist XML文档的显示 结果过滤通过在元素中添加一个选择属性的判别式 我们也可以过滤从XML文件输出的结果 合法的过滤运算符 等于 不等于 大于 XML文档的显示 TitleArtist XML文档的显示 元素用于对结果进行排序 如需对结果进行排序 只要简单地在XSL文件中的元素内部添加一个元素 order descending 倒序 XML文档的显示 元素用于放置针对XML文件内容的条件测试语法 如果条件成立则输出 XML文档的显示 TitleArtist XML文档的显示 元素用于结合和来表达多重条件测试语法 输出 输出 XML文档的显示 XML文档的显示 必需 规定属性的名称 XML文档的显示 比如超级链接 测试如何使用xml文档保存和 测试 并可以使用XSL来显示超级链接 比如图片 aaaaaaahttp bbbbbbhttp XML文档的显示 元素用于向元素添加属性 元素会替换名称相同的已有属性 语法name 必需 规定属性的名称 namespace 可选 为属性定义命名空间的URI XML文档的显示 aaaaaaahttp bbbbbbhttp 的href属性 的显示值 XML文档的显示 元素可把一个模板应用于当前的元素或者当前元素的子节点假如我们向元素添加一个select属性 此元素就会仅仅处理与属性值匹配的子元素 我们可以使用select属性来规定子节点被处理的顺序 MyCDCollection Title Artist 对xsl template和xsl apply templates的理解 1 XSLT文件就是由一个一个的模板 xsl template 组成 任何一个XSLT文件至少包含一个模板 模板的概念就象是搭积木 模板看作一个模块 它们可以被拼装组合 也可以单独成块 不同的模板控制不同的输出格式 2 xsl apply templates用来执行那一个节点被模板具体处理 你可以将它理解为程序中调用子函数 select属性用来定义确切的节点名称 xsl apply templates总是包含在xsl template元素中 象这样 这段代码说明摸板匹配整个文档 根节点 具体执行时处理根节点下所有para元素而这一段代码则表示摸板匹配para节点 所有para下的子元素都将被处理 XML文档的显示 元素练习 XML文档的显示 XPath是一门在XML文档中查找信息的语言 XPath可用来在XML文档中对元素和属性进行遍历 XPath路径表达式XPath使用路径表达式来选取XML文档中的节点或者节点集 这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似 XPath标准函数XPath含有超过100个内建的函数 这些函数用于字符串值 数值 日期和时间比较 节点和QName处理 序列处理 逻辑值等等 XML文档的显示 XPath学习内容 XPath节点XPath语法XPath轴XPath运算符XPath实例 XML文档的显示 节点 Node 在XPath中 有七种类型的节点 元素 属性 文本 命名空间 处理指令 注释以及文档 根 节点 XML文档是被作为节点树来对待的 树的根被称为文档节点或者根节点 XML文档的显示 节点关系父 Parent 每个元素以及属性都有一个父 子 Children 元素节点可有零个 一个或多个子 同胞 Sibling 拥有相同的父的节点先辈 Ancestor 某节点的父 父的父 等等 后代 Descendant 某个节点的子 子的子 等等 XML文档的显示 节点关系举例 BoysforPeleToriAmosHorses3 5Bloodroses3 2 XML文档的显示 XPath使用路径表达式来选取XML文档中的节点或节点集 节点是通过沿着路径 path 或者步 steps 来选取的 最有用的路径表达式 XML文档的显示 HarryPotter29 99LearningXML39 95 XML文档的显示 谓语 Predicates 谓语用来查找某个特定的节点或者包含某个指定的值的节点 谓语被嵌在方括号中 XML文档的显示 选取未知节点 XPath通配符可用来选取未知的XML元素 XML文档的显示 选取若干路径 通过在路径表达式中使用 运算符 您可以选取若干个路径 XML文档的显示 XPath轴 轴可定义相对于当前节点的节点集 XML文档的显示 EverydayItalianGiadaDeLaurentiis200530 00HarryPotterJK Rowling200529 99 XQueryKickStartJamesMcGovernPerBothnerKurtCagleJamesLinnVaidyanathanNagarajan200349 99LearningXMLErikT Ray200339 95 XML文档的显示 XPaht测试 1 选取所有title 2 选取第一个book的title 3 选取所有价格 4 选取价格高于35的price节点 5 选取价格高于35的title节点 6 选取所有的book节点 7 选取第一个book节点 8 选取price 9 选取价格高于35的price价格 10 选取价格高于35的title节点 对XML文档的基本操作 使用C 读取XML文档到内存 在XML文档中插入一个节点 修改XML文档中的一个节点 属性 值 节点值 在XML文档中删除一个节点 保存数据到XML文档中去 分别在DataGridView和TreeView中显示XML文档的数据 对XML文档的基本操作 已知有一个XML文件 bookstore xml 如下 Oberon sLegacyCorets Eva5 95 对XML文档的基本操作 往节点中插入一个节点 XmlDocumentxmlDoc newXmlDocument xmlDoc Load bookstore xml XmlNoderoot xmlDoc SelectSingleNode bookstore 查找XmlElementxe1 xmlDoc CreateElement book 创建一个节点xe1 SetAttribute genre 李赞红 设置该节点genre属性xe1 SetAttribute ISBN 2 3631 4 设置该节点ISBN属性XmlElementxesub1 xmlDoc CreateElement title xesub1 InnerText CS从入门到精通 设置文本节点xe1 AppendChild xesub1 添加到节点中XmlElementxesub2 xmlDoc CreateElement author xesub2 InnerText 候捷 xe1 AppendChild xesub2 XmlElementxesub3 xmlDoc CreateElement price xesub3 InnerText 58 3 xe1 AppendChild xesub3 root AppendChild xe1 添加到节点中xmlDoc Save bookstore xml 对XML文档的基本操作 结果为 Oberon sLegacyCorets Eva5 95CS从入门到精通候捷58 3 对XML文档的基本操作 修改节点 将genre属性值为 李赞红 的节点的genre值改为 update李赞红 将该节点的子节点的文本修改为 亚胜 XmlNodeListnodeList xmlDoc SelectSingleNode bookstore ChildNodes 获取bookstore节点的所有子节点foreach XmlNodexninnodeList 遍历所有子节点 XmlElementxe XmlElement xn 将子节点类型转换为XmlElement类型if xe GetAttribute genre 李赞红 如果genre属性值为 李赞红 xe SetAttribute genre update李赞红 则修改该属性为 update李赞红 XmlNodeListnls xe ChildNodes 继续获取xe子节点的所有子节点foreach XmlNodexn1innls 遍历 XmlElementxe2 XmlElement xn1 转换类型if xe2 Name author 如果找到 xe2 InnerText 亚胜 则修改break 找到退出来就可以了 break xmlDoc Save bookstore xml 保存 对XML文档的基本操作 结果为 Oberon sLegacyCorets Eva5 95CS从入门到精通亚胜58 3 对XML文档的基本操作 删除节点的genre属性 删除节点 XmlNodeListxnl xmlDoc SelectSingleNode bookstore ChildNodes foreach XmlNodexninxnl XmlElementxe XmlElement xn if xe GetAttribute genre fantasy xe RemoveAttribute genre 删除genre属性 elseif xe GetAttribute genre update李赞红 xe RemoveAll 删除该节点的全部内容 xmlDoc Save bookstore xml 对XML文档的基本操作 结果为 Oberon sLegacyCorets Eva5 95 对XML文档的基本操作 显示所有数据 XmlNodexn xmlDoc SelectSingleNode bookstore XmlNodeListxnl xn ChildNodes foreach XmlNodexnfinxnl XmlElementxe XmlElement xnf Console WriteLine xe GetAttribute genre 显示属性值Console WriteLine xe GetAttribute ISBN XmlNodeListxnf1 xe ChildNodes foreach XmlNodexn2inxnf1 Console WriteLine xn2 InnerText 显示子节点点文本 显示XML文档中的数据 使用DataSet作为数据源 DataGridView或GridView作为显示控件 使用XML文档作为数据源 TreeView作为显示控件 DataGridView或GridView作为显示控件 先实例化一个DataSet对象用来读取xml文件中的数据DataSetst newDataSet 用set读取xml文件st ReadXml E XMLFile xml 设置dataGridView的数据源dataGridView DataSource st Tables 0 同样是调用 DataSet set的WriteXml 方法其中传递要修改的xml文件地址st WriteXml E XMLFile xml 注意 只能按照行来显示简单的xml文档数据 实现TreeView的XML数据源绑定 TreeView控件可以使用XML文档作为数据源 根据XML文档的层次结构显示节点 而XML文档的访问由XmlDataSource控件来完成 从XmlDataSource控件的DataFile属性中指定XML文档路径 然后在TreeView控件中设置与XML文档中的节点的对应关系 本示例将演示如何把TreeView控件绑定到XML数据源 实现TreeView的XML数据源绑定 技术要点 把TreeView控件绑定到XML数据源的技术要点如下 使用XmlDataSource控件提供对XML文档的访问 在TreeView控件的DataBindings属性中指定节点与XML文档的对应关系 实现TreeView的XML数据源绑定 张三男25广州市黄浦区李四男28佛山市南海区 实现TreeView的XML数据源绑定 this TreeView1 ShowLines true 以下是添加节点与数据源绑定的对应关系TreeNodeBindingcontact newTreeNodeBinding contact DataMember contact 指定绑定的成员contact ValueField name 取值的字段this TreeView1 DataBindings Add contact TreeNodeBindinggenre newTreeNodeBinding genre DataMember genre 添加与 地区 绑定genre ValueField name this TreeView1 DataBindings Add genre TreeNodeBindingperson newTreeNodeBinding person DataMember person 添加与 负责人 绑定person ValueField Text this TreeView1 DataBindings Add person TreeNodeBindingname newTreeNodeBinding name DataMember name 添加与 名称 绑定name ValueField InnerText this TreeView1 DataBindings Add name TreeNodeBindingsex newTreeNodeBinding sex DataMember sex 添加与 性别 绑定sex ValueField InnerText this TreeView1 DataBindings Add sex TreeNodeBindingage newTreeNodeBinding age DataMember age 添加与 年龄 绑定age ValueField InnerText this TreeView1 DataBindings Add age TreeNodeBindingaddress newTreeNodeBinding address DataMember address 添加与 地址 绑定address ValueField InnerText this TreeView1 DataBindings Add address 实现TreeView的XML数据源绑定 实现TreeView的XML数据源绑定 TreeNodeBinding类在TreeView控件中定义数据项与该数据项绑定到的节点之间的关系 DataMember属性指定在节点显示数据源对应XML的节点 ValueField属性对应TreeNode对象的Value属性 NavigateUrl属性对应TreeNode对象的超级链接地址 NavigateUrlField属性对应TreeNode对象的超级链接标记 TreeNodeBinding类的Text属性指定向用户显示的文本 如果该属性没有指定 则默认与ValueField属性相同 TreeView控件的DataSourceID属性指定数据源控件源ID 实现TreeView的XML数据源绑定 XmlDataSource控件 DataFile属性中指定XML文档路径 然后在TreeView控件中设置与XML文档中的节点的对应关系 即 XmlDataSource XPath属性可以快速检索XML文档中需要的数据 XPath教程 XPath是一门在XML文档中查找信息的语言 XPath用于在XML文档中通过元素和属性进行导航 XPath路径表达式XPath使用路径表达式来选取XML文档中的节点或者节点集 这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似 XPath教程 选取节点XPath使用路径表达式在XML文档中选取节点 节点是通过沿着路径或者step来选取的 下面列出了最有用的路径表达式 表达式描述nodename选取此节点的所有子节点 从根节点选取 从匹配选择的当前节点选择文档中的节点 而不考虑它们的位置 选取当前节点 选取当前节点的父节点 选取属性 XPath教程 HarryPotter29 99LearningXML39 95 XPath教程 在下面的表格中 我们已列出了一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论