xml-DOM4J的使用

DOM4J

maven依赖

DOM4Jjar包
DOM4J使用xpah:需要jar包:jaxen

<!-- https://mvnrepository.com/artifact/org.jaxen/com.springsource.org.jaxen -->
<dependency>
    <groupId>org.jaxen</groupId>
    <artifactId>com.springsource.org.jaxen</artifactId>
    <version>1.1.1</version>
</dependency>

DOM4J--读取

<?xml version="1.0" encoding="UTF-8"?>
<home>
    <parameters>
        <title>qwe</title>
    </parameters>
    <home_body>
        <square>
            <properties>
                <name>name</name>
            </properties>
            <atom>
				<aa></aa>
				<bb></bb>
                <cc></cc>
            </atom>
        </square>
      </home_body>
  </home>

流程

//初始化
SAXReader reader = new SAXReader();
Document document;
try {
    //读取文件-加载文档
	document = reader.read(file);
	//获取根元素
	Element root = document.getRootElement();
	//获取root下的parameters节点下的title节点
	Element param = (Element)root.selectSingleNode("parameters/title");
    System.out.println(param.asXML());//将节点以xml字符串的格式输出

    //获得home_body节点
	Element body = (Element)root.selectSingleNode("home_body");
	List<Element> list = body.selectNodes("square");//指定节点(home_body)的子节点中所有的square节点(List)
} catch (DocumentException e) {
	e.printStackTrace();
}

方法

读取文件
SAXReader reader = new SAXReader();
Document document = reader.read(file);

获取根节点
getRootElement() 获得根元素
Element对象
elements(…) 获得指定名称的所有子元素。可以不指定名称(获取一级子元素,不获取孙子元素)
获取节点,不获取注释或空白符
element(…) 获得指定名称第一个子元素。可以不指定名称

getName() 获得当前元素的元素名
attributeValue(…) 获得指定属性名的属性值
elementText(…) 获得指定名称子元素的文本值
getText() 获得当前元素的文本内容

xpath使用
root.selectSingleNode("parameters");//获取这个节点下第一个parameters节点?
body.selectNodes("square");//获取这个节点下所有的square节点

body.selectNodes("/home/parameters");// --/单个斜杠--从根节点开始:

  1. 找到home节点
  2. 找到parameters节点

body.selectNodes("square/atom")

  1. 找到当前节点下的square节点
  2. 找到square节点下的atom节点

给节点添加元素

pro.addElement("id");//添加id节点
pro.selectSingleNode("id").setText("!23");//节点设置文本

DOM4J--写入


侵删
qq:240763433
参考链接一


posted on 2019-11-29 00:03  紫川柯南  阅读(102)  评论(0)    收藏  举报