精华内容
下载资源
问答
  • Xpath路径表达式

    2021-01-25 15:38:56
    Xpath路径表达式:XML文档查找数据的语言 (参考:http://www.ruanyifeng.com/blog/2009/07/xpath_path_expressions.html) 基本表达式: nodename(节点名称):表示选择该节点的所有子节点 "/":表示选择根...

    Xpath路径表达式:XML文档查找数据的语言

    (参考:http://www.ruanyifeng.com/blog/2009/07/xpath_path_expressions.html

    基本表达式:

    •  nodename(节点名称):表示选择该节点的所有子节点
    •  "/":表示选择根节点
    • "//":表示选择任意位置的某个节点
    • "@": 表示选择某个属性
    •  "."表示当前节点。
    •  ".."表示当前节点的父节点

    使用Jaxen开源XPath库:下载https://maven.aliyun.com/mvn/search搜索

    package com.ulikeme.dom4j;
    
    import java.util.List;
    
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.Node;
    import org.dom4j.io.SAXReader;
    
    public class XPathTestor {
    	public void xpath(String xpathExp) {
    		String file="E:/hr.xml";
    		SAXReader reader=new SAXReader();
    		try {
    			Document document=reader.read(file);
    			//selectNodes执行xpath表达式
    			 List<Node> nodes= document.selectNodes(xpathExp);
    			 for(Node node:nodes) {
    				 Element emp=(Element)node;
    				 System.out.println(emp.attributeValue("no"));
    				 System.out.println(emp.elementText("name"));
    				 System.out.println(emp.elementText("age"));
    				 System.out.println(emp.elementText("salery"));
    				 System.out.println("__________________________");
    			 }
    		} catch (DocumentException e) {
    			// TODO 自动生成的 catch 块
    			e.printStackTrace();
    		}
    	}
    	
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		XPathTestor testor=new XPathTestor();
    //		testor.xpath("/hr/employee");
    //		testor.xpath("//employee");
    		//工资小于4k输出
    		testor.xpath("//employee[salery<4000]"); 
    		testor.xpath("//employee[name='李白']");
    		testor.xpath("//employee[@no='002']");
    		//employee下第一个员工输出
    		testor.xpath("//employee[1]");
    		//employee下最后一个员工输出
    		testor.xpath("//employee[last()]");
    		//获取前两个员工输出
    		testor.xpath("//employee[position()<2]");
    		//同时输出第一个和第三个员工
    		testor.xpath("//employee[1] | //employee[3] ");
    		
    	}
    
    }
    

     

    展开全文
  • xpath 路径表达式

    2015-05-28 10:38:44
    xpath路径表达式笔记 作者: 阮一峰 日期: 2009年7月 6日 简单说,xpath就是选择XML文件中节点的方法。 所谓节点(node),就是XML文件的最小构成单位,一共分成7种。 - element(元素节点) - ...

    xpath路径表达式笔记

    作者: 阮一峰

    日期: 2009年7月 6日

    简单说,xpath就是选择XML文件中节点的方法。

    所谓节点(node),就是XML文件的最小构成单位,一共分成7种。

    - element(元素节点)
    - attribute(属性节点)
    - text (文本节点)
    - namespace (名称空间节点)
    - processing-instruction (处理命令节点)
    - comment (注释节点)
    - root (根节点)

    xpath可以用来选择这7种节点。不过,下面的笔记只涉及最常用的第一种element(元素节点),因此可以将下文中的节点和元素视为同义词。

    一、xpath表达式的基本格式

    xpath通过"路径表达式"(Path Expression)来选择节点。在形式上,"路径表达式"与传统的文件系统非常类似。

    # 斜杠(/)作为路径内部的分割符。

    # 同一个节点有绝对路径和相对路径两种写法。

    # 绝对路径(absolute path)必须用"/"起首,后面紧跟根节点,比如/step/step/...。

    # 相对路径(relative path)则是除了绝对路径以外的其他写法,比如 step/step,也就是不使用"/"起首。

    # "."表示当前节点。

    # ".."表示当前节点的父节点

    二、选择节点的基本规则

    - nodename(节点名称):表示选择该节点的所有子节点

    - "/":表示选择根节点

    - "//":表示选择任意位置的某个节点

    - "@": 表示选择某个属性

    三、选择节点的实例

    先看一个XML实例文档。

    <?xml version="1.0" encoding="ISO-8859-1"?>

    <bookstore>

      <book>
        <title lang="eng">Harry Potter</title>
        <price>29.99</price>
      </book>

      <book>
        <title lang="eng">Learning XML</title>
        <price>39.95</price>
      </book>

    </bookstore>

    [例1]

    bookstore :选取 bookstore 元素的所有子节点。

    [例2]

    /bookstore :选取根节点bookstore,这是绝对路径写法。

    [例3]

    bookstore/book :选取所有属于 bookstore 的子元素的 book元素,这是相对路径写法。

    [例4]

    //book :选择所有 book 子元素,而不管它们在文档中的位置。

    [例5]

    bookstore//book :选择所有属于 bookstore 元素的后代的 book 元素,而不管它们位于 bookstore 之下的什么位置。

    [例6]

    //@lang :选取所有名为 lang 的属性。

    四、xpath的谓语条件(Predicate)

    所谓"谓语条件",就是对路径表达式的附加条件。

    所有的条件,都写在方括号"[]"中,表示对节点进行进一步的筛选。

    [例7]

    /bookstore/book[1] :表示选择bookstore的第一个book子元素。

    [例8]

    /bookstore/book[last()] :表示选择bookstore的最后一个book子元素。

    [例9]

    /bookstore/book[last()-1] :表示选择bookstore的倒数第二个book子元素。

    [例10]

    /bookstore/book[position()<3] :表示选择bookstore的前两个book子元素。

    [例11]

    //title[@lang] :表示选择所有具有lang属性的title节点。

    [例12]

    //title[@lang='eng'] :表示选择所有lang属性的值等于"eng"的title节点。

    [例13]

    /bookstore/book[price] :表示选择bookstore的book子元素,且被选中的book元素必须带有price子元素。

    [例14]

    /bookstore/book[price>35.00] :表示选择bookstore的book子元素,且被选中的book元素的price子元素值必须大于35。

    [例15]

    /bookstore/book[price>35.00]/title :表示在例14结果集中,选择title子元素。

    [例16]

    /bookstore/book/price[.>35.00] :表示选择值大于35的"/bookstore/book"的price子元素。

    五、通配符

    # "*"表示匹配任何元素节点。

    # "@*"表示匹配任何属性值。

    # node()表示匹配任何类型的节点。

    [例17]

    //* :选择文档中的所有元素节点。

    [例18]

    /*/* :表示选择所有第二层的元素节点。

    [例19]

    /bookstore/* :表示选择bookstore的所有元素子节点。

    [例20]

    //title[@*] :表示选择所有带有属性的title元素。

    六、选择多个路径

    用"|"选择多个并列的路径。

    [例21]

    //book/title | //book/price :表示同时选择book元素的title子元素和price子元素。

    展开全文
  • xpath路径表达式

    2019-07-27 02:38:00
    xpath通过"路径表达式"(Path Expression)来选择节点。在形式上,"路径表达式"与传统的文件系统非常类似。 # 斜杠(/)作为路径内部的分割符。# 同一个节点有绝对路径和相对路径两种写法。# 绝对路径...

    一xpath表达式的基本格式

    xpath通过"路径表达式"(Path Expression)来选择节点。在形式上,"路径表达式"与传统的文件系统非常类似。

     

    # 斜杠(/)作为路径内部的分割符。

    # 同一个节点有绝对路径和相对路径两种写法。

    # 绝对路径(absolute path)必须用"/"起首,后面紧跟根节点,比如/step/step/...。

    # 相对路径(relative path)则是除了绝对路径以外的其他写法,比如 step/step,也就是不使用"/"起首。

    # "."表示当前节点。

    # ".."表示当前节点的父节点

    二、选择节点的基本规则

    - nodename(节点名称):表示选择该节点的所有子节点

    - "/":表示选择根节点

    - "//":表示选择任意位置的某个节点

    - "@": 表示选择某个属性

    三、选择节点的实例

    先看一个XML实例文档。

    <?xml version="1.0" encoding="ISO-8859-1"?>

    <bookstore>

      <book>
        <title lang="eng">Harry Potter</title>
        <price>29.99</price>
      </book>

      <book>
        <title lang="eng">Learning XML</title>
        <price>39.95</price>
      </book>

    </bookstore>

    [例1]

    bookstore :选取 bookstore 元素的所有子节点。

    [例2]

    /bookstore :选取根节点bookstore,这是绝对路径写法。

    [例3]

    bookstore/book :选取所有属于 bookstore 的子元素的 book元素,这是相对路径写法。

    [例4]

    //book :选择所有 book 子元素,而不管它们在文档中的位置。

    [例5]

    bookstore//book :选择所有属于 bookstore 元素的后代的 book 元素,而不管它们位于 bookstore 之下的什么位置。

    [例6]

    //@lang :选取所有名为 lang 的属性。

    四、xpath的谓语条件(Predicate)

    所谓"谓语条件",就是对路径表达式的附加条件。

    所有的条件,都写在方括号"[]"中,表示对节点进行进一步的筛选。

    [例7]

    /bookstore/book[1] :表示选择bookstore的第一个book子元素。

    [例8]

    /bookstore/book[last()] :表示选择bookstore的最后一个book子元素。

    [例9]

    /bookstore/book[last()-1] :表示选择bookstore的倒数第二个book子元素。

    [例10]

    /bookstore/book[position()<3] :表示选择bookstore的前两个book子元素。

    [例11]

    //title[@lang] :表示选择所有具有lang属性的title节点。

    [例12]

    //title[@lang='eng'] :表示选择所有lang属性的值等于"eng"的title节点。

    [例13]

    /bookstore/book[price] :表示选择bookstore的book子元素,且被选中的book元素必须带有price子元素。

    [例14]

    /bookstore/book[price>35.00] :表示选择bookstore的book子元素,且被选中的book元素的price子元素值必须大于35。

    [例15]

    /bookstore/book[price>35.00]/title :表示在例14结果集中,选择title子元素。

    [例16]

    /bookstore/book/price[.>35.00] :表示选择值大于35的"/bookstore/book"的price子元素。

    五、通配符

    # "*"表示匹配任何元素节点。

    # "@*"表示匹配任何属性值。

    # node()表示匹配任何类型的节点。

    [例17]

    //* :选择文档中的所有元素节点。

    [例18]

    /*/* :表示选择所有第二层的元素节点。

    [例19]

    /bookstore/* :表示选择bookstore的所有元素子节点。

    [例20]

    //title[@*] :表示选择所有带有属性的title元素。

    六、选择多个路径

    用"|"选择多个并列的路径。

    [例21]

    //book/title | //book/price :表示同时选择book元素的title子元素和price子元素。

    转载于:https://www.cnblogs.com/kinblog/p/11253674.html

    展开全文
  • XPath 路径表达式

    2020-01-02 12:14:12
    XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。 XML 实例文档 我们将在下面的例子中使用这个 XML 文档。 <?xml version="1.0" encoding="ISO-...

    XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。

    XML 实例文档

    我们将在下面的例子中使用这个 XML 文档。

    <?xml version="1.0" encoding="ISO-8859-1"?>
    
    <bookstore>
    
    <book>
      <title lang="eng">Harry Potter</title>
      <price>29.99</price>
    </book>
    
    <book>
      <title lang="eng">Learning XML</title>
      <price>39.95</price>
    </book>
    
    </bookstore>

    选取节点

    XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。

    下面列出了最有用的路径表达式:

    表达式 描述
    nodename 选取此节点的所有子节点。
    / 从根节点选取。
    // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
    . 选取当前节点。
    .. 选取当前节点的父节点。
    @ 选取属性。

    实例

    在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:

    路径表达式 结果
    bookstore 选取 bookstore 元素的所有子节点。
    /bookstore

    选取根元素 bookstore。

    注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!

    bookstore/book 选取属于 bookstore 的子元素的所有 book 元素。
    //book 选取所有 book 子元素,而不管它们在文档中的位置。
    bookstore//book 选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。
    //@lang 选取名为 lang 的所有属性。

    谓语(Predicates)

    谓语用来查找某个特定的节点或者包含某个指定的值的节点。

    谓语被嵌在方括号中。

    实例

    在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:

    路径表达式 结果
    /bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。
    /bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。
    /bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。
    /bookstore/book[position()<3] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。
    //title[@lang] 选取所有拥有名为 lang 的属性的 title 元素。
    //title[@lang='eng'] 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
    /bookstore/book[price>35.00] 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。
    /bookstore/book[price>35.00]/title 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。

    选取未知节点

    XPath 通配符可用来选取未知的 XML 元素。

    通配符 描述
    * 匹配任何元素节点。
    @* 匹配任何属性节点。
    node() 匹配任何类型的节点。

    实例

    在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:

    路径表达式 结果
    /bookstore/* 选取 bookstore 元素的所有子元素。
    //* 选取文档中的所有元素。
    //title[@*] 选取所有带有属性的 title 元素。

    选取若干路径

    通过在路径表达式中使用“|”运算符,您可以选取若干个路径。

    实例

    在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:

    路径表达式 结果
    //book/title | //book/price 选取 book 元素的所有 title 和 price 元素。
    //title | //price 选取文档中的所有 title 和 price 元素。
    /bookstore/book/title | //price 选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素。
    展开全文
  • XPath路径表达式

    千次阅读 2017-08-23 07:14:13
    XPath是万维网联盟(W3C)的官方推荐。它定义了一个语言在XML文件中查找信息。它被用于遍历XML文档的元素和属性。 XPath提供各种类型,可用于从XML...路径表达式 - XPath提供了强大的路径表达式选择的节点或在XML文档
  • 什么是Xpath路径表达式 Xpath路径表达式是XML文档中查询数据的语言 掌握XPath可以极大的提高提取数据时的开发效率 学习XPath本质就是掌握各种形式的表达式的使用技巧 Xpath基本表达式 最常用的基本表达式 有...
  • 学习笔记 编辑器:Sublime ... 上一篇:初识Xpath之Node节点 文章目录Xpath路径表达式绝对路径和相对路径定位步与节点集轴及缩写...一个Xpath路径表达式由若干个"定位步"构成,一个Xpath路径表达式将返回一个节点集...
  • xpath路径表达式笔记

    千次阅读 2014-04-14 15:26:28
    xpath路径表达式笔记 简单说,xpath就是选择XML文件中节点的方法。 所谓节点(node),就是XML文件的最小构成单位,一共分成7种。 - element(元素节点) - attribute(属性节点) - ...
  • xpath路径表达式笔记 作者: 阮一峰 日期: 2009年7月 6日 简单说,xpath就是选择XML文件中节点的方法。 所谓节点(node),就是XML文件的最小构成单位,一共分成7种。 - ...
  • XPath路径表达式选取XML节点.doc 为XML中常用属性说明 XmlHelper.CS 一个类文件 包括对XML 文件的常规操作 xml字符串转换为dataTable DataTable 转换为xml 找出所有与pPath匹配路径的节点创建dataTable,并设置...
  • 反转xpath路径表达式为html结构(一):单层标签反转解析; var unXpath=function(X){ var A=X.split(/\]\[|\[|\]/);//属性分组处理 A[0]=A[0].replace(/(#)(\w+(?=(\s|\.|\[|$)))/,' id="$2"');//转换ID A[0]=A...
  • 通过节点名定位 html 定位到html节点 html/head 定位到head节点 html/head/meta 定位...相对路径定位节点 //title 使用相对路径定位到title节点 //meta ...
  • 转:XPath路径表达式

    2014-06-15 18:52:00
    XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。 XML 实例文档 我们将在下面的例子中使用这个 XML 文档。 <?xml version="1.0" encoding="ISO-...
  • XPath路径表达式详解

    2009-07-01 14:35:21
    经常在工作中会使用到XPath的相关知识,但每次总会在一些关键的地方不记得或不太清楚,所以免不了每次总要查一些零碎的知识,感觉即很烦又浪费时间,所以对XPath归纳及总结一下
  • 如图所示,操作非常简单,注意安装后重启chrome 表达式会被直接复制到剪贴板,复制过程浏览器不会有什么变化,为了更直观地感受复制结果,图中加了一个文本框 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,562
精华内容 624
关键字:

xpath路径表达式