|
XPath语法定义及其使用介绍,假定有一个book.xml文件,其定义如下: <?xml version="1.0" encoding="utf-8" ?> <bookstore> <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0"> <title>The Autobiography of Benjamin Franklin</title> <author> <first-name>Benjamin</first-name> <last-name>Franklin</last-name> </author> <price>8.99</price> </book> <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2"> <title>The Confidence Man</title> <author> <first-name>Herman</first-name> <last-name>Melville</last-name> </author> <price>11.99</price> </book> <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6"> <title>The Gorgias</title> <author> <name>Plato</name> </author> <price>9.99</price> </book> </bookstore> XPath语法定义: (1)“/”代表根节点路径,一般是从根节点开始检索。即是绝对路径 例如: /bookstore 代表要查找bookstore根节点下边的内容 bookstore/book 表示查找bookstore根节点下边的book节点的内容 /*/*/price 表示查找文档中所有的price子节点。 (2)"//" 代表目前文档路径 例如: //book 表示要查找book节点,如果要检索一个节点的话,就返回第一个,否则就返回所有的book节点信息。 //book[@genre='novel'],表示查找book节点中,属性名为“novel”的book节点。 (3) "@" 表示要查找属性 比如 查找book节点下边genre属性名为“novel”的节点 bookstore/book [@genre='novel'] 如果要倒序查找的话,可以这样写:descendant::book[@genre='novel'] (4) /bookstore/book[price=11.99] 查找bookstore下面book节点中price节点值为11.99的节点 /bookstore/book [last()] 查找bookstore下面的最后一个book节点
选出含有price子元素的所有/bookstore/book元素。 /bookstore/book [price]
选出price元素的值等於11.99的所有/bookstore/book元素 的price元素 /bookstore/book [price=11.99]/price
选择属性 属性都是以@开头。例如选择文件中所有叫做ISBN的屬性: //@ISBN
选择所有含有ISBN这个属性的book元素: //book[@ISBN]
选择含有属性的所有book元素 //book[@*]
选择出ISBN属性为的book元素 //book[@ISBN='0-201-63361-2']
|