Java动态生成和解析xml文件步骤详解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java动态生成和解析xml文件步骤详解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4639字,纯文字阅读大概需要7分钟。
内容图文
首先声明,这个地方是利用dom4j进行解析和生成,需要用到dom4j的jar包,所以首先需要我们获取jar包:
<dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency>
生成xml文件代码案列:
package day12; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; /** * 写出XML文档 */ public class WriteXmlDemo { public static void main(String[] args) { List<Emp> empList = new ArrayList<Emp>(); empList.add(new Emp(1,"张三",22,"男",3000)); empList.add(new Emp(2,"李四",23,"女",4000)); empList.add(new Emp(3,"王五",24,"男",5000)); empList.add(new Emp(4,"赵六",25,"女",6000)); empList.add(new Emp(5,"钱七",26,"男",7000)); empList.add(new Emp(6,"传奇",21,"男",8000)); /* * 写出XML文档的大致步骤 * 1.创建空白文档对象Document * 2.向该文档中添加根元素 * 3.按照规定的XML文档结构从根元素开始,逐级添加子元素,已完成该结构 * 4.创建XMLWriter * 5.将Document对象写出成XML文档 * 6.将XMLWriter关闭 */ //1 Document doc = DocumentHelper.createDocument(); /* * 2.Element addElement(String name) * Document提供的该方法是用来向当前文档中添加给定名字的根元素。并将其以一个Element * 实例返回以便于继续对该根元素操作。 * 需要注意,该方法只能调用一次,因为一个文档中只能有一个根元素。 */ Element root = doc.addElement("list"); //将所有员工信息以若干<emp>标签形式添加到<list>中 for(Emp emp:empList){ /* * Element提供了向其中添加子标签的方法: * Element addElement(String name) */ Element empEle = root.addElement("emp"); //添加<name>标签 Element nameEle = empEle.addElement("name"); nameEle.addText(emp.getName()); //添加<age>标签 Element ageEle = empEle.addElement("age"); ageEle.addText(String.valueOf(emp.getAge())); //添加<gender>标签 Element genderEle = empEle.addElement("gender"); genderEle.addText(emp.getGender()); //添加<salary>标签 Element salaryEle = empEle.addElement("salary"); salaryEle.addText(emp.getSalary()+""); empEle.addAttribute("id",emp.getId()+""); } try { FileOutputStream fos = new FileOutputStream("myemp.xml"); XMLWriter writer = new XMLWriter(fos,OutputFormat.createCompactFormat()); writer.write(doc); System.out.println("写出完毕!"); writer.close(); } catch (Exception e) { e.printStackTrace(); } } }View Code
解析xml文件代码案列
package day12; import java.io.FileInputStream; import java.util.ArrayList; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** * 使用DOM4J解析XML文档 * @author tarena * */ public class ParseXMLDemo { public static void main(String[] args) { /* * 读取emplist文件,将该xml文档中的所有员工信息解析出来, * 并以若干Emp实例保存,然后将这些员工信息存入到一个List集合中。 */ /* * 使用DOM解析XML的四大致流程: * 1.创建SAXReader * 2.使用SAXReader读取要解析的XML文档,该步骤就是DOM耗时耗资源的地方, * 因为会将文档所有内容解析完毕并存入到内存中。 * 读取方法会返回一个Document对象,该对象就表示解析出来的该XML文档内容 * 3.通过Document对象获取根元素(根标签)。 * 4.根据文档的结构,从根元素开始逐级获取子元素以达到遍历XML文档数据的目的。 */ try { //1 SAXReader reader = new SAXReader(); //2 Document doc = reader.read(new FileInputStream("emplist.xml")); /* *3.获取根元素 *Element的每一个实例用于表示XML文档中的一个元素(一对标签) *它提供了很多用于操作当前标签的方法,其中常用的用于获取标签信息的方法有: * * String getName() 获取标签名 * * Element elements(Sting name) 根据给定名字获取当前标签中的子标签 * * List elements() * 获取当前标签中的所有子标签,返回的集合中是若干Element实例,每个为一个子元素 * * List elements(String name) 获取当前标签中的所有同名名字元素 * * String getText() 获取当前标签中间的文本 * * Attribute attribute(String name) 获取当前标签中指定名字的属性 * */ Element root = doc.getRootElement(); List<Emp> empList = new ArrayList<Emp>(); /* * 获取<list>标签中的所有<emp>标签 */ List<Element> list = root.elements(); /* * 将每一个<emp>标签中的内容取到,并以一个Emp实例保存,然后将该对象存入集合 */ for(Element empEle : list){ // System.out.println(empEle.getName()); //获取name Element nameEle = empEle.element("name"); String name = nameEle.getText(); System.out.println(name); //获取age int age = Integer.parseInt(empEle.elementText("age")); System.out.println(age); //获取性别 String gender = empEle.elementText("gender"); System.out.println(gender); //获取工资 int salary = Integer.parseInt(empEle.elementText("salary")); System.out.println(salary); //获取ID int id = Integer.parseInt(empEle.attributeValue("id")); Emp emp = new Emp(id , name , age ,gender, salary); empList.add(emp); } System.out.println("解析完成!"); for(Emp e:empList){ System.out.println(e); } } catch (Exception e) { e.printStackTrace(); } } }View Code
如果有帮助到大家,希望大家给个赞,谢谢!
内容总结
以上是互联网集市为您收集整理的Java动态生成和解析xml文件步骤详解全部内容,希望文章能够帮你解决Java动态生成和解析xml文件步骤详解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。