递归获取每个标签

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遍历)

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

方法二:(迭代器获取)

 List<Element> elements = rootElement.elements();
for (Element element :elements) { Iterator attributeIterator = element.attributeIterator();
while (attributeIterator.hasNext()) {
Attribute attribute = (Attribute)attributeIterator.next(); String name = attribute.getName();
String value = attribute.getValue(); System.out.println(name+" "+value); } }

把XML写在本地文件

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

最新文章

  1. 主成分分析PCA的前世今生
  2. 【JAVA 小结】Java关于类与对象的代码
  3. C# winform程序如何打包64位安装程序
  4. 烂泥:ubuntu安装KVM虚拟机管理virt-manager
  5. 隐藏DLL
  6. linux安装php5.3
  7. StackExchange.Redis 使用
  8. 接口自动化测试持续集成--Soapui接口测试
  9. 微信小程序 数据库指引 前端操纵数据库失败
  10. PEB标记反调试方法
  11. redis设置最大内存
  12. iOS8不能通过itms-services协议下载安装app
  13. harbor使用和管理
  14. psql -- PostgreSQL 交互终端
  15. 归并排序(C++实现)
  16. s3c2440——实现裸机的简易printf函数
  17. Quartus调用MOdelsim仿真过程
  18. Spring点滴七:Spring中依赖注入(Dependency Injection:DI)
  19. 基于zxing的二维码(网格)扫描
  20. 【转】eclipse for java ee的tomcat配置(常见问题解决)

热门文章

  1. 82-基于Xilinx Virtex-5LXT FPGA的四路光纤PCIE卡(4路光纤卡)
  2. thinkphp 系统变量
  3. 前端每日实战:25# 视频演示如何用纯 CSS 创作一个慧星拖尾效果的 loader 动画
  4. DELPHI FMX 获取系统版本 ANDROID IOS通用
  5. SpringCLoud之搭建Zuul网关集群
  6. DOSUtil
  7. gitHub pull Request记录
  8. php array_splice()函数 语法
  9. 谜之WA
  10. git 几个commit点合并成一个commit点