这篇文章主要为大家展示了“Java中如何使用DOM4J生成xml文件并解析xml文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中如何使用DOM4J生成xml文件并解析xml文件”这篇文章吧。
<dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency>
生成xml代码
/** * 使用DOM4J生成xml方法 */ public static void createXml(){ try { // 创建document对象 Document document = DocumentHelper.createDocument(); // 创建根节点bookRoot Element StudentRoot = document.addElement("StudentRoot"); // 向根节点中添加第一个节点 Element book1 = StudentRoot.addElement("student"); // 向子节点中添加属性 book1.addAttribute("id","1"); // 向节点中添加子节点 Element name = book1.addElement("name"); // 向子节点赋值 name.setText("小乔"); Element price = book1.addElement("age"); price.setText("18"); // 向根节点中添加第二个节点 Element book2 = StudentRoot.addElement("student"); book2.addAttribute("id","2").addElement("name").setText("大桥"); book2.addElement("age").setText("20"); // 向根节点中添加第三个节点 Element book3 = StudentRoot.addElement("student"); book3.addAttribute("id","3").addElement("name").setText("孙策"); book3.addElement("age").setText("21"); // 设置生成xml的格式 OutputFormat of = OutputFormat.createPrettyPrint(); // 设置编码格式 of.setEncoding("UTF-8"); // 生成xml文件 File file = new File("E:\\student.xml"); if (file.exists()){ file.delete(); } //创建一个xml文档编辑器 XMLWriter writer = new XMLWriter(new FileOutputStream(file), of); //把刚刚创建的document放到文档编辑器中 writer.write(document); writer.close(); } catch (Exception e) { e.printStackTrace(); } }
解析xml的文件就是刚刚导出的那个样子,我们展示两种情况,一个是知道属性名字和子元素名字的我们把解析的xml文件数据放到实体类中.不知道的就直接打印到控制台.
实体类展示
import lombok.Data; @Data public class Student { private int id; private String name; private int age; }
解析xml文件方法
public static void analysis(){ // 把要解析的xml变成file文件 File file = new File("E:\\student.xml"); // 获取解析器对象 SAXReader reader = new SAXReader(); // 把文件解析成document树 Document document = null; try { document = reader.read(file); } catch (DocumentException e) { e.printStackTrace(); } // 获取根节点 Element studentRoot = document.getRootElement(); // 获取根节点中所有节点 List<Element> elements = studentRoot.elements(); // 存放xml中节点的数据集合 List<Student> list = new ArrayList<>(); // 便利所有节点 for (Element child : elements) { Student student = new Student(); //已知属性名情况下 student.setId(Integer.parseInt(child.attributeValue("id")));//获取属性的数据 //已知子元素名的情况下 student.setName(child.elementText("name"));//获取元素中值 student.setAge(Integer.parseInt(child.elementText("age")));//获取元素中值 list.add(student); //未知属性名情况下 List<Attribute> attributes = child.attributes(); for (Attribute attribute : attributes) { System.out.println(attribute.getName() + "---> " + attribute.getValue()); } //未知子元素名情况下 List<Element> elementList = child.elements(); for (Element ele : elementList) { System.out.println(ele.getName() + "--->" + ele.getText()); } } //把解析xml出来的数据集合打印 list.forEach(x-> System.out.println(x)); }
解析结果展示
以上是“Java中如何使用DOM4J生成xml文件并解析xml文件”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。