XPath查询语言:XML文档导航与操作

需积分: 3 4 下载量 200 浏览量 更新于2024-08-23 收藏 1.59MB PPT 举报
"XPath轴-XML文档查询和转换" XPath是一种强大的路径语言,设计用于在XML文档中查找信息。它允许我们通过路径表达式来导航XML文档的结构,并且包含了丰富的标准函数库,广泛应用于XSLT转换和其他XML处理技术中。XPath是W3C推荐的标准,对于理解和操作XML文档至关重要。 1. XPath轴(Axes) - `child::axis`:这个轴用于选取当前节点的所有子元素。例如,`child::book` 将选取所有属于当前节点的`book`子元素。 - `attribute::axis`:选取当前节点的属性。如`attribute::lang`将选取当前节点的`lang`属性。 - `child::*`:选取当前节点的所有子元素,无论它们的名称是什么。 - `attribute::*`:与`child::*`类似,但用于选取所有属性。 - `child::text()`:选取当前节点的所有文本子节点。 - `child::node()`:选取当前节点的所有子节点,包括元素、文本、注释等。 - `descendant::axis`:选取当前节点的所有后代节点。例如,`descendant::book`会选取所有位于当前节点下的`book`节点。 - `ancestor::axis`:选取当前节点的所有祖先节点。`ancestor::book`会选取所有上级的`book`节点。 - `ancestor-or-self::axis`:不仅选取祖先,还包括当前节点自身。如果当前节点就是`book`,则也会被选取。 2. XPath运算符 - `|`:节点集合并。例如,`//student|//teacher`返回所有`student`和`teacher`元素的节点集。 - `+`:加法运算。如`2 + 3`结果为5。 - `-`:减法运算。如`5 - 2`结果为3。 - `*`:乘法运算。`2 * 3`等于6。 - `div`:除法运算。`6 div 3`等于2。 - `=`:等于。如`price = 15.5`,如果`price`元素的值为15.5,则返回`true`。 - `!=`:不等于。如果`price`不等于15.5,返回`true`。 - `<`:小于。如果`price`小于15.5,返回`true`。 - `<=`:小于或等于。如果`price`小于或等于15.5,返回`true`。 - `>`:大于。如果`price`大于15.5,返回`true`。 - `>=`:大于或等于。如果`price`大于或等于15.5,返回`true`。 3. DOM(文档对象模型) - DOM是一种标准,定义了如何访问和操作XML和HTML文档。 - DOM将XML文档表示为节点树,节点间的关系包括父、子、同级、前一个和后一个节点。 - `XMLDocument`对象提供了加载XML文档的方法,如`load()`和`loadXML()`,以及操作节点的方法,如`getElementsByTagName()`、`appendChild()`、`insertBefore()`、`createElement()`、`removeChild()`,以及获取节点信息的属性,如`nodeType`、`nodeValue`和`nodeName`。 本章还介绍了其他XML查询和转换技术,如XQuery用于复杂的查询,以及XSLT用于转换XML文档。学习XPath的目标是理解其基本语法,能使用XPath选择XML文档中的特定节点,掌握XQuery的FLWOR表达式来查询XML,以及利用XSLT执行简单的XML转换。这些技术是XML处理的核心部分,对任何处理XML数据的开发者来说都极其重要。