xml解析之(三) - dom4j对xpath的支持

阅读更多

               Dom4j对XPATH的支持 

   dom4j中查询可能不是很方便,但是通过引入XPATH,可以大大简化我们队dom元素的查询

   1.引入XPATH包(jaxen-1.1-beta-6.jar)(下载一个dom4j,里面就有)

   2.引入dom4j jar包

   3.DOM4J使用xpath有两种方法

     selectNodes()

     selectSingleNode()

入门例子:

public static void main(String[] args) throws Exception{

//xpath中提供了selectNodes和selectSingleNode方法,

        这种解析xml的方式大大提高了开发效率,建议以后开发可以常用

   /* 

        1. / 代表元素绝对路径

        2. //代表 无论层级关系

        3. * 任意

        4.[]获取元素的位置

        具体可以参考xpath的文档

  */

Document document = Dom4jXmlUtils.getDocument("src/person.xml");

//List nodeList = document.selectNodes("/persons/person");//文档中persons标签下的person标签

 

//List nodeList = document.selectNodes("//name");//文档中任意位置的name标签

 

/*List nodeList = document.selectNodes("/persons/person/*");

System.out.println(nodeList.size());*/

 

/*List nodeList = document.selectNodes("/persons/person/name[1]");

    Node node = nodeList.get(1);

    System.out.println(node.getText());*/

 

 /*List nodeList = document.selectNodes("//person/id[@type]");

    System.out.println(nodeList.size());*/

 

    Node node = document.selectSingleNode("//person/id");

    System.out.println(node.getText());

    

}

 

}

Person.xml文件

xml version="1.0" encoding="UTF-8"?>

<persons> 

  <person> 

    <id type="uuid" length="12" value="001">001id>  

    <name>jackname>  

    <age>44age>  

    <sql>

      select * from table

]]>sql>  

    <dog>狼狗dog> 

  person>  

  <person> 

    <id>002id>  

    <name from="fg">jimname>  

    <age>19age>  

    <height>180cmheight> 

  person> 

persons>

你可能感兴趣的:(xpath)