递归获取每个标签

package test;

import java.io.File;
import java.util.List;

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

public class test {
    
    public static void main(String[] args) {
        //1.获取dom4j解析对象
        SAXReader reader = new SAXReader();
        
        //2.获取要解析的xml文件
        try {
            Document document = reader.read(new File("./src/student.xml"));
            //3.获取根标签
            Element rootElement = document.getRootElement();
            
            getEachElement(rootElement);
            
            
        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    public static void getEachElement(Element element) {
        System.out.println(element.getName());
        List<Element> elements = element.elements();
        if (elements!=null) {
            for (Element element2 : elements) {
                getEachElement(element2);
            }
        }
    }
    
}

运行结果

 获取标签属性

方法一:(foreach遍历)

1 List<Element> elements = rootElement.elements(); 
2               for (Element element :elements) { 
3                  String id = element.attributeValue("id");
4                  String message = element.attributeValue("message");
5                  System.out.println(id+"   "+message);
6               }

方法二:(迭代器获取)

 1 List<Element> elements = rootElement.elements(); 
 2               for (Element element :elements) { 
 3                 
 4                   Iterator attributeIterator = element.attributeIterator();
 5                   while (attributeIterator.hasNext()) {
 6                     Attribute attribute = (Attribute)attributeIterator.next();  
 7                     
 8                     String name = attribute.getName();
 9                     String value = attribute.getValue();
10                 
11                     System.out.println(name+"  "+value);
12                     
13                 }
14                   
15         }    

把XML写在本地文件

1 Document docuement = reader.read(new File("./src/student.xml"));
2             FileOutputStream fileOutputStream = new FileOutputStream("C:\\message.xml");
3             
4             OutputFormat outputFormat = OutputFormat.createPrettyPrint();
5             XMLWriter xmlWriter = new XMLWriter(fileOutputStream,outputFormat);
6             outputFormat.setEncoding("utf-8");
7             xmlWriter.write(docuement);
8             fileOutputStream.close();
9             xmlWriter.close();

标签智能推荐:

Java中使用DOM4J来生成xml文件解析xml文件

Trace();}}四、解析xml文件解析xml的文件就是刚刚导出的那个样子,我们展示两种情况,一个是知道属性名字和子元素名字的我们把解析的xml文件数据放到实体类中.不知道的就直接打印到控制台.实体类展示importlombok.Data;@DatapublicclassStudent{privateintid;privateStringname;privateintage;}解析xml文件方法

[从产品角度学EXCEL 02]-EXCEL里的树形结构

看excel解压缩以后的xml文件。让我们随意打开一个xml文件,一串串密密麻麻的字符就这样跳了出来。对于不熟悉xml架构的人来说,我们只会看到眼花缭乱的括号,等号,引号。但是如果你对xml有点理解,你就会知道,这一系列的标点符号框起了一个个xml的数据结构。对于xml来说,每一个层级都是由&lt;标签属性=ABC&gt;内容信息&lt;/标签&gt;构成的。有的内容信息里又会再次嵌套一层标签层级

java-jaxb学习实践

本篇博客为学习笔记。通过学习网上博客总结而作,文字描述部分是总结,代码部分经过学习修改,运行通过。1.什么是JAXBJAXB,是JavaEE的规范,全称JavaArchitectureforXMLBinding。它是一种可以根据XMLSchema产生Java类的技术,JAXB也提供将XML实例文档反向生成java对象树的方法,并将java对象树的内容重新写入XML实例文档。1.1java对象与xm

C# XML基础入门(XML文件内容增删改查清)

式是XML。由于工作多年只有之前在医疗行业的时候有接触过少量数据格式是XML的接口,之后就几乎没有接触过了。因此对于XML这块自己感觉还是有很多盲点和不足的,所以自己通过一些网上的资料总结了一下XML相关知识点。什么是XML?XML是一种可扩展标记语言(EXtensibleMarkupLanguage)。XML是一种很像HTML的标记语言。XML的设计宗旨是传输数据,而不是显示数据。XML标签没有

Java中使用dom4j解析xml文档

前段时间学习了XML(ExtensibleMarkupLanguage)可扩展标记语言后了解到了XML被设计为具有自我描述性,它的设计宗旨是传输数据,而不是显示数据那如果我们想要获取到XML的数据内容应该怎么办呢?于是我最近学习到了可以使用dom4j来解析XML文档并获取其中的数据那么什么是dom4j呢?简单来说:dom4j是一个Java的XMLAPI,是jdom的升级品,用来读写XML文件的。d

XML学习笔记

,不会解析xml]]&gt;XML解析技术xml是可扩展的标记语言。不管是html文件还是xml文件它们都是标记型文档,都可以使用w3c组织制定的dom技术来解析document对象表示的是整个文档(可以是html文档,也可以是xml文档)早期JDK为我们提供了两种xml解析技术DOM和Sax简介(已经过时,但我们需要知道这两种技术)dom解析技术是W3C组织制定的,而所有的编程语言都对这个解析技

BASH:Find files with multiple suffixes

find/-typef|egrep"\.(java|xml)$"find/-typef-name"*.js"-o-name"*.xml"

MyBatis的解析和运行原理

close()关闭会话请说说MyBatis的工作原理在学习MyBatis程序之前,需要了解一下MyBatis工作原理,以便于理解程序。MyBatis的工作原理如下图1)读取MyBatis配置文件:mybatis-config.xml为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,例如数据库连接信息。2)加载映射文件。映射文件即SQL映射文件,该文件中配置了操作数据库的SQL语

IDEA必备插件

FreeMyBatisplugin在使用MyBatis作为ORM框架时,通常是查询接口在Java代码中写,但是SQL语句却在XML文件中,需要查看接口对应的SQL语句时需要一层层跳转,操作起来非常不方便,FreeMyBatisplugin就可以实现Java接口与XML文件之间来回快速跳转的功能,大大提高了生产效率。从Java接口跳转xml文件SQL语句:从xml文件SQL语句跳转Java接口:

java使用Spire.Doc生成的word文件去除水印(头部的警告信息)

1.需求通过word模板和库表中数据动态生成word文档。word操作工具本身自带word转xml(直接另存为xml即可)。但是需求明确了,只能用word模板,也不允许用户手动从word转xml再上传。数据动态生成使用了freemark,freemark需要一个xml或flt文件,所以结合上边的不能传xml的需求,我将word模板使用Spire.Doc将word模板转xml,在使用freemark