天天看点

dom4j获取节点内容

使用dom4j读取XML,循环获取所有的节点,找到内容后停止,本人菜鸟一枚,大佬轻喷……

import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class XML1 {
    boolean pd = true;
    List<Element> nodes1 = new ArrayList<>();
    public void duqu(){
        try {
            SAXReader reader = new SAXReader();
            Document   document = reader.read(new File("C:\\Users\\Administrator\\Desktop\\main\\ui.xml"));
            Element root = document.getRootElement();
                for (Iterator it = root.elementIterator(); it.hasNext(); ) {
                    Element element = (Element) it.next();
                    if (element.attributeValue("text").equals("甲方乙方面基群")) {
                        System.out.println("找到了");
                    } else {
                        nodes1.addAll(element.elements("node"));
                    }
                }
            while (pd) {
                List<Element> nodes = new ArrayList<>();
                for (Iterator at1 = nodes1.iterator(); at1.hasNext(); ) {
                    Element elm1 = (Element) at1.next();
                    if (elm1.attributeValue("text").equals("甲方乙方面基群")) {
                        System.out.println("找到了");
                        pd =false;
                    } else {
                        if (elm1.elements("node")!=null){
                            nodes.addAll(elm1.elements("node"));
                        }
                    }
                }
                nodes1.clear();
                nodes1.addAll(nodes);
                nodes.clear();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}