public class Dom4JHelloWorldDemo1 {
@Test
public void passXMLData() throws Exception{
SAXReader saxReader = new SAXReader();
//Document document = saxReader.read(new File("xml-app\\src\\Contacts.xml"));//需要通过模块取定位
////Document document = saxReader.read(new FileInputStream("xml-app\\src\\Contacts.xml"));
//注意:/ 是直接去src下寻找的文件
InputStream is = saxReader.getClass().getResourceAsStream("/Contacts.xml");
Document document = saxReader.read(is);
//3.获取根元素对象
Element root = document.getRootElement();
System.out.println(root.getName());//取得根元素名称
//4.拿根元素下的全部子元素对象(一级,直接儿子)
//List<Element> sonList = root.elements();//拿到所有子元素
List<Element> sonList = root.elements("contact");
for (Element element :sonList) {
System.out.println(element.getName());
}
//拿某个子元素
Element userEle = root.element("user");
System.out.println(userEle.getName());
//默认提取第一个子元素对象(潘金莲)
Element contact = root.element("contact");
//获取子元素文本
System.out.println(contact.elementText("name"));
//去掉前后空格
System.out.println(contact.elementTextTrim("name"));//潘金莲前后空格没有了
//根据元素获取属性值
Attribute idAttr = contact.attribute("id");
System.out.println(idAttr.getName() +"-->"+ idAttr.getValue());
//直接提取属性值
System.out.println(contact.attributeValue("id"));
System.out.println(contact.attributeValue("vip"));
//获取当前元素下的子元素对象
Element email = contact.element("email");
System.out.println(email.getText());
}
}
<?xml version="1.0" encoding="UTF-8"?>
<contactList>
<contact id="1" vip="true">
<name> 潘金莲 </name>
<gender>女</gender>
<email>panpan@itcast.cn</email>
</contact>
<contact id="2" vip="false">
<name>武松</name>
<gender>男</gender>
<email>wusong@itcast.cn</email>
</contact>
<contact id="3" vip="false">
<name>武大狼</name>
<gender>男</gender>
<email>wuda@itcast.cn</email>
</contact>
<user>
</user>
</contactList>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律