JAVA XML Dom4j XPATH的运用

使用前请先导入Dom4j和XPATH的jar包
Dom4j:https://pan.baidu.com/s/1c16QTzU
XPATH:http://pan.baidu.com/s/1jIdiLaY

XPATH的作用:可以更加简洁高效的访问xml中的标签内容。
例如要获取如下代码的标签的内容,可以使用XPATH语句“Store/a/b/c/d”配合XPATH的特定函数实现高效访问。

<Store> 
    <a>
        <b>
            <c>
                <d>我在这儿~</d>
            </c>
        </b>
    </a>

</Store>

XPATH的常用语句:
XPATH的常用语句

XPATH的常用函数:
获取所有符合条件的节点
selectNodes(String xpathExpression) 返回List集合
获取符合条件的单个节点
selectSingleNode(String xpathExpression) 返回一个Node对象。
如果符合条件的节点有多个,那么返回第一个。
注意:他们返回值的都是Node类型,可以直接进行强转为Element类型。

已下为实验代码。

import java.io.File;
import java.io.FileInputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class xpath {
    public static void main(String args[]) throws Exception{
        //创建Dom4j核心解析器对象。
        SAXReader saxReader = new SAXReader();
        //读入硬盘中的xml文件,并在内存中创建对象
        Document xmlDocument = 
                saxReader.read(new FileInputStream(new File("write.xml")));
        //获取根节点
        Element rootElement = xmlDocument.getRootElement();
        System.out.println("获取根结点名称:" + rootElement.getName());

        System.out.println("--------------单一查找----------------");
        //赋值XPATH语句
        String XPATH = "/Store/a/b/c/d";
        //利用XPATH语句查找节点。
        //因为Node与Element有继承关系,所以可以进行强转。
        Element element = (Element) xmlDocument.selectSingleNode(XPATH);
        System.out.println("根据XPATH获取结点内容:" + element.getText());

        System.out.println("---------------所有查找---------------");
        //赋值XPATH语句
        XPATH = "//d";
        List<Element> list = xmlDocument.selectNodes(XPATH); 
        for(Element e : list){
            System.out.println("根据XPATH获取结点内容:" + e.getText());
        }
    }


}

write.xml文件

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

<Store> 
    <a>
        <b>
            <c>
                <d>我在这儿~</d>
            </c>
            <d>我在那儿~</d>
        </b>
            <d>我在天上~</d>
    </a>
        <d>我在地下~</d>
</Store>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值