XML学习——java解析xml文件
2024-09-06 01:04:01
递归获取每个标签
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();
最新文章
- 主成分分析PCA的前世今生
- 【JAVA 小结】Java关于类与对象的代码
- C# winform程序如何打包64位安装程序
- 烂泥:ubuntu安装KVM虚拟机管理virt-manager
- 隐藏DLL
- linux安装php5.3
- StackExchange.Redis 使用
- 接口自动化测试持续集成--Soapui接口测试
- 微信小程序 数据库指引 前端操纵数据库失败
- PEB标记反调试方法
- redis设置最大内存
- iOS8不能通过itms-services协议下载安装app
- harbor使用和管理
- psql -- PostgreSQL 交互终端
- 归并排序(C++实现)
- s3c2440——实现裸机的简易printf函数
- Quartus调用MOdelsim仿真过程
- Spring点滴七:Spring中依赖注入(Dependency Injection:DI)
- 基于zxing的二维码(网格)扫描
- 【转】eclipse for java ee的tomcat配置(常见问题解决)