DOM4J对于XML的用法

Posted alsf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DOM4J对于XML的用法相关的知识,希望对你有一定的参考价值。

一、基本使用方式
    语法
    1、获取根元素
Element root = document.getRootElement();
    2、获取某个元素下的子元素
Element db_element = root.element("db");
    3、获取元素的子元素集合1
List<Element> db_list = db_element.elements();//所有子元素
    4、获取元素属性的值
element.attributeValue("name");
    5、获取元素的内容
element.getText();
    6、获取元素的子元素集合2
element.elements("user");//指定名称的子元素集合

实战

<users>
  <user no="2017">
    <name>狗蛋</name>
    <age>17</age>
  </user>
  <user no="2018">
    <name>李狗蛋</name>
    <age>19</age>
  </user>
</users>

1、导入dom4j的jar包,遍历

public void test4j() throws DocumentException {
//创建解析器
    SAXReader reader = new SAXReader();
    org.dom4j.Document document = reader.read(new File("src/userInfo.xml"));
    org.dom4j.Element root = document.getRootElement();

    List<org.dom4j.Element> list = root.elements();

    for(org.dom4j.Element e:list){
//获取属性值
        String no = e.attributeValue("no");
        String name = e.element("name").getText();
        String age = e.element("age").getText();

        System.out.println(no+name+age);
    }
}

二、选择器使用

    语法
1、获取节点集合:如下,获取所有节点的name属性的集合
List<Node> list= document.selectNodes("users/user/name");
2、获取节点的节点名称
node.getName();
3、获取节点的值
node.getText();
4、获取节点的属性值
node.valuesOf("@no");

实战

2、还需导入jaxen-1.1-beta-6.jar,进行xpath操作
public void testdom4j_xpath() throws DocumentException {
    SAXReader reader = new SAXReader();
    org.dom4j.Document document = reader.read(new File("src/userInfo.xml"));
    List<Node> list= document.selectNodes("users/user/name");
    for(Node node:list){
        String qname = node.getName();
        String name = node.getText();
        System.out.println(qname+"--"+name);
    }
    List<org.dom4j.Node> list1 = document.selectNodes("users/user");
    for(Node node:list1){
        String no = node.valueOf("@no");
        System.out.println(no);
    }
}

 

三、创建,修改XML文档
    语法
1、获取document对象
Document document = DocumentHelper.createDocument();
2、创建根元素
 Element root = document.addElement("users");  
3、添加子节点
Element e = element.addElement("name");
4、设置属性
Element e = element.setText("张三");
5、删除节点e的子节点element
e.remove(element);

四、属性

     语法
    1.取得某节点下的某属性          
Attribute attribute=element.attribute("id");
    2.取得属性的文字
    String text=attribute.getText();
    3.删除某属性
Attribute attribute=root.attribute("size"); root.remove(attribute);
    4.遍历某节点的所有属性     
Element root=document.getRootElement();      
for(Iterator it=root.attributeIterator();it.hasNext();){        
     Attribute attribute = (Attribute) it.next();         
     String text=attribute.getText();        
     System.out.println(text);  
}
    5.设置某节点的属性和文字.  
newMemberElm.addAttribute("name", "sitinspring");
    6.设置属性的文字   
Attribute attribute=root.attribute("name");   
attribute.setText("csdn");

 

 

 

 

以上是关于DOM4J对于XML的用法的主要内容,如果未能解决你的问题,请参考以下文章

dom4j 最常用最简单的用法(转)

org.dom4j.Document的主要用法

dom4j基本使用用法

XML.04-dom4j和XPath

使用 dom4j 处理 xml (上)

如何用Dom4j获取CDATA结点内容