xml显示 ,新增信息

来源:互联网 发布:js 数据库 update语句 编辑:程序博客网 时间:2024/09/21 09:22

一。原本的xml类似这个样的

<?xml version="1.0" encoding="UTF-8"?>-<students> -<student id="1"> <name>王通</name> <subject>java</subject> <score>89</score> </student> -<student id="2"> <name>李佳</name> <subject>sql</subject> <score>58</score> </student>

二。输出显示在控制台上  需要导入dom4j包

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 Test4 {public static void main(String[] args)   {try {SAXReader reader=new SAXReader(); Document document=reader.read(new File("src/Student.xml")); Element root=document.getRootElement();//得到根节点 List<Element>elementlistList=root.elements("student");//root.elements()是数组类型的 //遍历集合使用相关节点 for (Element stuElement:elementlistList  ) {//获得元素的属性 String idString=stuElement.attributeValue("id"); //获取元素的字元素的文本值 String name=stuElement.elementText("name"); String subject=stuElement.elementText("subject"); String score=stuElement.elementText("score"); System.out.printf("学生的id是:%S,学生的姓名是:%S,学会生的课程是:%S,学生的分数是:%S",idString, name,subject,score); System.out.println( );}} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} 

三 。新增信息导xml。本题先创建了一个学生类

public class Student {int id;String name;String subject;int score;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSubject() {return subject;}public void setSubject(String subject) {this.subject = subject;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}public Student(int id, String name, String subject, int score) {super();this.id = id;this.name = name;this.subject = subject;this.score = score;}}

下面是信息录入程序

import java.io.File;import java.io.FileWriter;import java.io.IOException;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class AddElement {public static void main(String[] args) {try {Student stu = new Student(3, "张三", "php", 99);// 创建saxReady对象SAXReader reader = new SAXReader();// 通过read方法读取一个文件,转换成Doucement对象Document document = reader.read(new File("src/Student.xml"));// 获得根节点元素,目标元素为StudentsElement rootElement = document.getRootElement();// 添加一个student节点到students中Element student = rootElement.addElement("student");// 属性值赋值有点变态哦student.addAttribute("id", stu.getId() + "");// 这里的参数类型是String的,如果student类中不定义Integer类型的// 为studnet增加name,subject,score的子元素Element name = student.addElement("name");// 增加一个name元素name.setText(stu.getName());// 为name元素赋文本值 ,为student的nameElement subject = student.addElement("subject");subject.setText(stu.subject);Element score = student.addElement("score");score.setText(stu.score + "");// 将编辑好的Document对象写回scores.xml文件OutputFormat format = OutputFormat.createPrettyPrint();// 设置编码集format.setEncoding("UTF-8");// 创建XMLWriter高级流XMLWriter write = new XMLWriter(new FileWriter("src/Student.xml"), format);write.write(document);write.flush();write.close();System.out.println("编辑完成!");} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}




0 0