XPath
XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。
XPath 使用路径表达式在 XML 文档中进行导航 XPath 包含一个标准函数库 XPath 是 XSLT 中的主要元素 XPath 是一个 W3C 标准
基本语法: 选取节点XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。 下面列出了最有用的路径表达式:
表达式: XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。路径表达式是从一个XML节点(当前的上下文节点)到另一个节点、或一组节点的书面步骤顺序。这些步骤以“/”字符分开,每一步有三个构成成分:
一般情况下,我们使用简写后的语法。虽然完整的轴描述是一种更加贴近人类语言,利用自然语言的单词和语法来书写的描述方式,但是相比之下也更加啰嗦。
运算符
节点关系: 节点(Node)是XPath 的术语。 在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。 父(Parent)每个元素以及属性都有一个父。 在下面的例子中,book 元素是 title、author、year 以及 price 元素的父: <book> <title>HarryPotter</title> <author>JK.Rowling</author> <year>2005</year> <price>29.99</price> </book>
子(Children)元素节点可有零个、一个或多个子。 在下面的例子中,title、author、year 以及 price 元素都是 book 元素的子: <book> <title>HarryPotter</title> <author>JK.Rowling</author> <year>2005</year> <price>29.99</price> </book> 同胞(Sibling)拥有相同的父的节点 在下面的例子中,title、author、year 以及 price 元素都是同胞: <book> <title>HarryPotter</title> <author>JK.Rowling</author> <year>2005</year> <price>29.99</price> </book> 先辈(Ancestor)某节点的父、父的父,等等。 在下面的例子中,title 元素的先辈是 book 元素和 bookstore 元素: <bookstore> <book> <title>HarryPotter</title> <author>JK.Rowling</author> <year>2005</year> <price>29.99</price> </book> </bookstore> 后代(Descendant)某个节点的子,子的子,等等。 在下面的例子中,bookstore 的后代是 book、title、author、year 以及 price 元素: <bookstore> <book> <title>HarryPotter</title> <author>JK.Rowling</author> <year>2005</year> <price>29.99</price> </book> </bookstore> 存取函数: 名称 说明 fn:node-name(node) 返回参数节点的节点名称。 fn:nilled(node) 返回是否拒绝参数节点的布尔值。 fn:data(item.item,...) 接受项目序列,并返回原子值序列。 fn:base-uri() fn:base-uri(node) 返回当前节点或指定节点的 base-uri 属性的值。 fn:document-uri(node) 返回指定节点的 document-uri 属性的值。 实例: <?xmlversion="1.0"encoding="ISO-8859-1"?> <bookstore> <bookcategory="COOKING"> <title>EverydayItalian</title> <author>GiadaDeLaurentiis</author> <year>2005</year> <price>30.00</price> </book> <bookcategory="CHILDREN"> <title>HarryPotter</title> <author>JK.Rowling</author> <year>2005</year> <price>29.99</price> </book> <bookcategory="WEB"> <title>XQueryKickStart</title> <author>JamesMcGovern</author> <author>PerBothner</author> <author>KurtCagle</author> <author>JamesLinn</author> <author>VaidyanathanNagarajan</author> <year>2003</year> <price>49.99</price> </book> <bookcategory="WEB"> <title>LearningXML</title> <author>ErikT.Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |