dom4j获取xml中所有name元素的值(第一个、第二个)

p1.xml

<person> 
  <p1> 
    <name>zhangsan</name>  
    <age>30</age>  
  </p1>  
  <p1> 
    <name>lisi</name>  
    <age>30</age> 
  </p1> 
</person>

import java.util.List;

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

public class TestDom4j {

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

}

// 查询xml中所有name的方法
public static void selectName() throws Exception {
    /*
     * 1、创建解析器 
     * 2、得到document 
     * 3、得到根节点 
     * 4、得到p1 
     * 5、得到p1下面的name 
     * 6、得到name里面的值
     * 
     * */
    // 创建解析器
    SAXReader saxReader = new SAXReader();
    // 得到document
    Document document = saxReader.read("src/p1.xml");
    // 得到根节点
    Element root = document.getRootElement();

    // 得到p1
    List<Element> list = root.elements("p1");
    // 遍历list
    for (Element element : list) {
        // element是每一个p1元素
        // 得到p1下面的name元素
        Element name1 = element.addElement("name");
        // 得到name里面的值
        String s = name1.getText();
        System.out.println(s);
    }
}

}

输出
zhangsan
lisi

//获取到一个name元素里面的值
public static void selectSin() throws Exception{
    /*
     * 1、创建解析器
     * 2、得到document
     * 
     * 3、得到根节点
     * 
     * 4、得到第一个p1元素
     * 5、得到p1下面的name元素
     * 6、得到name元素里面的值
     * */

    //创建解析器
    SAXReader saxReader = new SAXReader();
    //得到document 
    Document document = saxReader.read("src/day06/p1.xml");
    //得到根节点
    Element root = document.getRootElement();
    //得到第一个p1
    Element p1 = root.element("p1");
    //得到p1下面的name元素
    Element name1 = p1.element("name");
    //得到name的值
    String s1 = name1.getText();
    System.out.println(s1);
    }

输出
zhangsan

//获取第二个name元素里面的值
public static void selectSecond() throws Exception{
    /*
     * 1、创建解析器
     * 2、得到document
     * 3、得到根节点
     * 
     *  4、得到所有的p1
     *  5、遍历得到第二个p1
     *  6、得到第二个p1下面的name
     *  7、得到name的值
     * */

    //创建解析器
    SAXReader saxReader = new SAXReader();
    //得到document
    Document document = saxReader.read("src/day06/p1.xml");
    //得到根节点
    Element root = document.getRootElement();
    //得到所有p1
    List<Element> list = root.elements("p1");
    //得到第二个p1 list集合下标从0开始
    Element p2 = list.get(1);
    //得到p1下面的name
    Element name2 = p2.element("name");
    //得到name里面的值
    String s2 = name2.getText();
    System.out.println(s2);

    }


输出
lisi

猜你喜欢

转载自blog.csdn.net/qq_42776429/article/details/82532754