读取xml信息

1、读取xml信息

<?xml version="1.0" encoding="UTF-8"?>
<students>
    <student1 id="001">
        <姓名>残缺的孤独</姓名>
        <学号>201401021</学号>
        <地址>北京</地址>
        <座右铭>要听话</座右铭>
    </student1>
    <student2 id="002">
        <姓名>越长大越可怕</姓名>
        <学号>201102</学号>
        <地址>朝阳区</地址>
        <座右铭>学会坚强</座右铭>
    </student2>
</students>
    public void saxrXml() throws DocumentException {
        SAXReader saxReader = new SAXReader();
        Document read = saxReader.read(getResourcesStream("student.xml"));
        // 获取根节点
        Element rootElement = read.getRootElement();
        getNodes(rootElement);
    }

    /**
     * 读取xml的路径,
     * getClass().getClassLoader()获取到的是resource目录
     * @param xmlPath
     * @return
     */
    private InputStream getResourcesStream(String xmlPath){
        return this.getClass().getClassLoader().getResourceAsStream(xmlPath);
    }

    public static void getNodes(Element rootElement) {
        System.out.println("获取当前名称:" + rootElement.getName());
        // 获取属性信息
        List<Attribute> attributes = rootElement.attributes();
        for (Attribute attribute : attributes) {
            System.out.println("属性:" + attribute.getName() + "---" + attribute.getText());
        }
        // 获取属性value
        String value = rootElement.getTextTrim();
        if (!StringUtils.isEmpty(value)) {
            System.out.println("value:" + value);
        }
        // 使用迭代器遍历,继续遍历子节点
        Iterator<Element> elementIterator = rootElement.elementIterator();
        while (elementIterator.hasNext()) {
            Element next = elementIterator.next();
            getNodes(next);
        }
    }

2、动态创建一个xml

    /**
     * 创建一个xml
     */
    public void dom4jXml(){
        //1.自己创建Document对象
        Document document = DocumentHelper.createDocument();
        //创建根节点
        Element root = DocumentHelper.createElement("students");
        document.setRootElement(root);
        //root下的子节点
        Element name = root.addElement("姓名");
        Element age = root.addElement("年龄");
        //子节点赋值
        name.setText("大佬牛");
        age.setText("55");
        getNodes(root);
    }

猜你喜欢

转载自blog.csdn.net/qq_35418518/article/details/89069784