《XML程序设计》PPT课件.ppt

上传人:w****2 文档编号:7319001 上传时间:2020-03-19 格式:PPT 页数:33 大小:405.34KB
返回 下载 相关 举报
《XML程序设计》PPT课件.ppt_第1页
第1页 / 共33页
《XML程序设计》PPT课件.ppt_第2页
第2页 / 共33页
《XML程序设计》PPT课件.ppt_第3页
第3页 / 共33页
点击查看更多>>
资源描述
1 XML程序设计 第8章 XPath语言 2 主要内容XPath简介Node节点XPath路径表达式的结构谓词节点集上使用谓词节点集的并运算JavaXPathAPI节点集与函数编译XPath路径表达式应用实例 图书查询难点XPath路径表达式的结构谓词 第8章导读 3 概述 W3C在1999年推出XMLPathLanguage XPath Version1 0规范 简称XPath1 0语言规范 2007年推出XPath2 0语言规范 使用XPath可以很容易地编写查询XML中数据的XPath路径表达式 XPath语言为应用程序从XML文件中获得所需要的特殊数据提供了更加方便 快捷的语法 XPath的作用非常类似SQL语言在关系数据库中的地位 4 8 1XPath简介 XPath语言的核心是给出用于从XML文件中查找标记的语法规则 即编写XPath路径表达式 以便使应用程序更加方便 快捷地从XML文件中检索到所需要的数据 5 8 1 1初识XPath路径表达式 一个XPath路径表达式 简称XPath表达式 由若干个 定位步 所构成 例题8 1p187针对上例中的XML文件的XPath路径表达式 学生列表 学生 姓名返回example8 1 xml中与该XPath路径表达式匹配的所有标记 即返回example8 1 xml文件中的所有名字为 姓名 的标记 下面的XPath路径表达式 学生列表 学生 2 姓名返回example8 1 xml文件中第2个名称为 学生 标记中的所有 姓名 子标记 XPath路径表达式的核心是给出一个匹配XML文件中标记的模式 也可以说XPath路径表达式的核心是用于表示满足一定条件的标记所组成的集合 6 8 1 2使用XPathAPI 使用JavaXPathAPI处理XPath路径表达式的步骤如下 1 使用javax xml xpath包中的XPathFactory类调用其类方法newInstance 实例化一个XPathFactory对象 如 XPathFactoryxPathFactory XPathFactory newInstance 2 步骤1中得到的XPathFactory对象调用newXPath 方法返回一个XPath对象 如 XPathxPath xPathFactory newXPath 3 使用org xml sax包中的InputSource类将XML文件封装到一个InputSource对象中 如 InputSourcesource newInputSource student xml 4 在第2步骤获得的XPath对象调用evaluate 方法来计算XPath路径表达式 如 NodeListnodelist NodeList xPath evaluate 学生列表 学生 2 姓名 source XPathConstants NODESET 7 8 2Node节点 XPath语言把XML文件中的标记 标记包含文本等组成的数据结构看作是一个树形结构 即将XML文件看作是由Node类型节点构成的树 Node节点由可细分为Document Element Text Attribue ProcessingInstruction和Namespace节点 8 8 2 1节点之间的关系 树形结构中的各个节点按其在树中的位置形成各种关系 比如一个节点是另一个节点的子节点等 和通常树形结构数据中使用的术语一样 XPath语言也经常使用下列表明节点之关系的术语 子节点 父节点 子孙节点 祖先节点 兄节点 弟节点 兄弟节点等 9 8 2 2节点的类型 1 Path语言将XML文件看作是由Node类型节点构成的树 而且Node类型节点还可细分为Document Element Text Attribute ProcessingInstruction和Namespace等节点 XPath将下面的文件employee xml 见190页 看作是一个如图8 2所示的树形结构 10 8 2 2节点的类型 2 1 Document 文档 节点XPath语言将整个XML文件看作是一个树形结构的数据 并把XML文件作为该树的根节点 而且这个根节点的类型是Document类型的节点 2 Element 元素 节点XPath语言将XML文件中的每个标记看作是一个Element节点 3 Text 文本 节点XPath语言将XML文件中标记中包含的文本作是一个Text节点 而且该Text节点包含的文本内容就是它所对应的文本 4 Attribute 属性 节点XPath语言将XML文件中标记含有的属性看作是一个Attribute节点 5 ProcessingInstruction 操作指令 节点XPath语言将XML文件中操作指令看作是一个ProcessingInstruction节点 6 Namespace节点XPath语言将XML文件中标记的的开始标签中声明的名称空间看作是一个Namespace节点 该节点的名字就是名称空间的前缀 节点包含的文本内容就是名称空间的名字 7 Comment 注释 节点XPath语言将XML文件中注释看作是一个Comment节点 注释节点包含的文本内容就是注释中的内容 11 8 2 3节点的名字与值 JavaAPathAPI使用对应的接口或类和XPath规范中的节点类型相对应 节点常用的以下3个方法获取和它有关信息 12 8 3XPath路径表达式的结构 一个XPath路径表达式由若干个 定位步 构成 一个XPath路径表达式将返回一个节点集 即XPath路径表达式的核心是表示满足一定条件的标记所组成的集合 13 8 3 1绝对路径与相对路径 XPath路径表达式由若干 定位步 从左向右用 连接而构成 XPath路径表达式分为绝对路径和相对路径 从根节点开始 Document节点 的路径表达式称做绝对路径 否则称为相对路径 例题8 3p192 14 8 3 2定位步与节点集 1 定位步 定位步 是构成XPath的基本单位 用于确定出相应的若干个节点 一个定位步由轴 axis 节点测试 nodetest 和可选的谓词所构成 定位步的格式 轴 节点测试谓词2 定位步与节点的寻找定位步的作用找出节点 定位步中的轴的作用是在树形结构数据中给出寻找Node节点的方向 节点测试的作用是给出寻找的Node节点应当属于哪种细分的类型 谓词的作用是给出所寻找的节点所需要满足的进一步的条件 定位步的谓词是可选项 3 XPath路径表达式与节点集XPath路径表达式由若干 定位步 从左向右用 连接而构成 XPapth路径表达式寻找出的节点集也称作XPapth路径表达式返回的节点集 或XPapth路径表达式的 值 15 8 3 4节点测试 Path路径表达式由若干 定位步 从左向右用 连接而构成路径 而定位步又是由轴 axis 节点测试 nodetest 和可选的谓词所构成 使用定位步的当前节点根据轴确定所寻找的节点的方向 根据节点测试确定所寻找的节点的具体类型 一个节点测试可以是标记的名字 text node 或comment 等 例题8 5 例题8 6p198 16 8 4谓词 定位步 是构成XPath的基本单位 用于确定出相应的若干个节点 一个定位步由轴 axis 节点测试 nodetest 和可选的谓词所构成 定位步的格式 轴 节点测试谓词谓词 Predicates 是定位步中最吸引人的部分 17 8 3 3轴以及缩写 XPath路径表达式中的定位步使用轴来定位节点 而节点的具体类型由节点测试负责 例题8 4p197 18 8 4 1谓词的格式与作用 谓词的目的是给出定位步所寻找出的节点需满足的进一步条件 即当前节点在使用定位步的轴和节点测试找出若干个节点后 再使用谓词从这些节点中筛选出满足谓词条件的节点 谓词是用一对中括号扩起的条件表达式 谓词格式是 条件表达式 使用带有谓词定位步 轴 节点测试谓词的当前节点首先根据轴和节点测试寻找出若干个节点 然后从这些节点中再筛选出满足谓词条件的节点 即筛选出使得谓词中条件表达式为true的节点 例题8 6p198 19 8 4 2寻找特殊位置的节点 在谓词中使用position 和last 函数可以寻找指定位置上的节点 例如 对于定位步 轴 节点测试 position 2 缩写 轴 节点测试谓词 2 使用该定位步的当前节点所寻找的是满足轴和节点测试的全部节点中的第2个节点 例题8 6p198 20 8 4 3寻找有特殊属性的节点 在谓词中使用attribue轴或 寻找具有指定属性或属性值的节点 1 寻找具有指定属性和属性值的节点如果要寻找具有指定属性的节点 可以在谓词中使用 attribue 属性名1逻辑关系符 attribue 属性名n或使用缩写 属性名1逻辑关系符 属性名n2 使用contains函数如果希望寻找具有指定属性 并且属性值中含有指定的字符串时 就可以在谓词中使用contains函数 格式是 contains 属性名 特定字符串 例题8 6p198 21 8 4 4寻找有特殊关系节点的节点 1 寻找具有特殊关系节点的节点如果要寻找具有特殊关系节点的节点 但对该特殊关系节点包含的内容没有特殊的要求 可以在谓词中使用 轴 特殊关系节点名称1逻辑关系符轴 特殊关系节点名称2 轴 特殊关系节点名称n那么满足该谓词条件的节点必须和谓词中的节点形成轴所指定的特殊关系 例题8 6p1982 使用contains函数如果希寻找具有特殊关系节点的节点且特殊关系节点包含的文本需要含有指定的字符串时 就可以在谓词中使用contains函数 格式是 contains 轴 节点名称 特定字符串 例题8 6p198 22 8 4 5使用谓词嵌套寻找节点 谓词的作用是给出节点需满足的进一步条件 因此允许谓词中继续使用谓词 例如 对于谓词 节点名 属性名 特定值 那么满足上述谓词的节点需要有指定名字的子节点 而且子节点必须有指定的属性名和特定的属性值 例如 对于谓词 following 节点名 属性名 特定值 满足上述谓词的节点需要有指定名字的弟节点 而且弟节点必须有指定的属性名和属性值 例如 对于谓词 descendant 节点名 属性名 特定值 满足上述谓词的节点需要有指定名字的子孙节点 而且子孙节点必须有指定的属性名和特定的属性值 例题8 6p198 23 8 5节点集上使用谓词 XPath允许在XPath绝对路径最后寻找出的节点集上使用谓词 其作用是从当前节点集中筛选 过滤出所需要的节点 即从当前节点集中筛选 过滤出一个子集 其使用格式是 绝对路径 谓词例题8 6p198 24 8 6节点集的并运算 XPath语言允许将多个XPath路径表达式寻找出的节点集合使用 进行集合的并运算 所得到的节点集中的节点按着节点在XML中的对应的标记或文本出现的先后顺序排列 例题8 6p198 25 8 7JavaXPathAPI 在本章前面的8 1 2节介绍了怎样使用JavaXPathAPI处理XPath路径表达式 其关键是使用JavaXPathAPI提供的XPath对象调用evaluate 方法来计算XPath路径表达式 XPath对象的evaluate 方法的常用格式如下 Objectevaluate Stringexpression InputSourcesource QNamereturnType 26 8 7 1按NodeSet计算 当XPath对象调用 evaluate Stringexpression InputSourcesource QNamereturnType 方法 并将参数returnType可以取值为 XPathConstants NODESET时 evaluate方法计算的结果是org w3c dom包中的一个NodeList对象 即evaluate方法返回org w3c dom包中的一个NodeList对象 该NodeList对象是由org w3c dom包中Node对象组成的一个节点集 27 8 7 2按Node计算 当XPath对象调用evaluate Stringexpression InputSourcesource QNamereturnType 方法 并将参数returnType可以取值为 XPathConstants NODE时 evaluate方法计算的结果是org w3c dom包中的一个Node对象 即evaluate方法返回org w3c dom包中的一个Node对象 该Node对象对应着XPath路径表达式expression返回的节点集中的第一个节点 例题8 7p211 28 8 7 3按字符串计算 当XPath对象调用evaluate Stringexpression InputSourcesource QNamereturnType 方法 并将参数returnType可以取值为 XPathConstants String时 evaluate方法计算的结果是一个String对象 即evaluate方法返回一个String对象 该String对象对应着XPath路径表达式expression返回的节点集中的第一个节点包含的文本 例题8 8p212 29 8 7 4按布尔值计算 当XPath对象调用evaluate Stringexpression InputSourcesource QNamereturnType 方法 并将参数returnType可以取值为 XPathConstants BOOLEAN时 evaluate方法计算的结果是一个Boolean对象 即evaluate方法返回一个Boolean对象 例题8 8p212 30 8 7 5按数值计算 当XPath对象调用evaluate Stringexpression InputSourcesource QNamereturnType 方法 并将参数returnType可以取值为 XPathConstants NUMBER时 evaluate方法计算的结果是一个Double对象 即evaluate方法返回一个Double对象 该Double对象对应着XPath路径表达式expression返回的节点集中的第一个节点包含的文本所转换的Doube对象 如果文本内容无法转化为Double对象 evaluate方法返回 NaN 表示没有这样的数字 例题8 9p213 31 8 8节点集与函数 XPath语言给出了几个作用与节点集上的函数 1 count node set 函数count node set 函数返回参数指定的节点集中的节点的个数 例如count 列车时刻表 列车 始发时间 返回的值是2 2 id object 函数ID类型的属性的属性值具有互斥性 即所有ID类型的属性的属性值必须互不相同 如果希望某个属性的属性值具有专用性 即不允许其它ID类型的属性与当前属性具有相同的属性值 那么就可以将当前属性的类型取为ID类型 见3 5 3 id object 函数可以返回具有指定ID属性的节点 例如 id 辽B555 返回具有ID属性值为 辽B55 的节点 例题8 10p2153 sum node set 函数sum函数将节点集中的节点包含的文本转换为数字 并返回它们的和 如果节点集中的某个节点包含的文本无法转换为数字 sum返回NaN 例题8 11p216 32 8 9编译XPath路径表达式 JavaXPathAPI提供的XPath对象可以事先调用XPathExpressioncompile Stringexpression 方法对参数expression指定XPath路径表达式进行编译 并在内存中得到一个XpathExpression对象 该XpathExpression对象调用evaluate InputSourcesource QNamereturnType 方法对参数source指定的XML文件进行检索 33 8 10应用实例 图书查询 XML文件book xml描述图书信息 BookConditionWindow java负责提供输入查询条件的界面 FindBookByXPath java负责获取BookConditionWindow java界面中输入的查询条件 并根据该条件给出XPath路径表达式 并使用该XPath路径表达式查询book xm Appication java是含有main方法的Java应用程序 例题8 12p217
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!