XML的使用

打印 上一主题 下一主题

主题 344|帖子 344|积分 1032

一.xml

1.xml是什么:指可扩展标记语言,被设计用来传输和存储数据,可以解决步伐间数据传输的题目,也可以做设置文件,还可以充当小型的数据库
2.xml的标签可以自定义,但其命名方式需要留意以下几点 区分大小写;不能以数字开头;不能包含空格;名称中心不能包含冒号;如果标签之间需要间隔建议使用下划线
3.属性 属性值用双引号或者单引号举行分隔,一个元素可以有多个属性,特定的属性名称在同一个元素标记中只能出现一次,属性值不能包括&字符
4.CDATA节:有些内容不想让剖析引擎实行,而是当做原始内容处理(即当做平凡文本),可以用CADTA包括起来,CDATA节中的所有字符都会被当做简单文本,而不是xml标记 (除]]>其他都可以放) <![CDATA[文本内容]]]>
5.转义字符:&表示& <表示< >表示>
二.DOM4j

1.DOM4J用于对xml文件举行剖析处理,可以对文件举行增编削查
2.下面是使用DOM4j的一些例子
  1. import org.dom4j.Document;
  2.         import org.dom4j.DocumentException;
  3.         import org.dom4j.DocumentHelper;
  4.         import org.dom4j.Element;
  5.         import org.dom4j.io.OutputFormat;
  6.         import org.dom4j.io.SAXReader;
  7.         import org.dom4j.io.XMLWriter;
  8.         import org.junit.jupiter.api.Test;
  9.         import java.io.*;
  10.         import java.util.List;
  11. public class Dom4j_ {
  12.     //    演示如何加载xml文件
  13.     @Test
  14.     public void loadXML() throws DocumentException {
  15.         //得到一个解析器
  16.         SAXReader reader = new SAXReader();
  17.         //看document的对象属性
  18.         Document document = reader.read(new File("src/main/java/students.xml"));
  19.         System.out.println(document);
  20.     }
  21.     @Test
  22.     //遍历所有的students信息
  23.     public void ListStus() throws DocumentException {
  24.         //1得到解析器
  25.         SAXReader reader = new SAXReader();
  26.         //2用解析器解析文件
  27.         Document document = reader.read(new File("src//main//java//students.xml"));
  28.         //3得到一个dom对象,得到根节点
  29.         Element rootElement = document.getRootElement();
  30.         //4得到根节点的students
  31.         List<Element> students = rootElement.elements();
  32.         System.out.println(students);
  33.         for (Element student : students) {
  34.             //获取student的下面的子元素
  35.             Element name = student.element("name");
  36.             Element age = student.element("age");
  37.             Element gender = student.element("gender");
  38.             System.out.println("名字是:" + name.getText() + "/t" + "性别是:" + age.getText() + "/t" + "年龄是:" + age.getText());
  39.         }
  40.     }
  41.     //    指定读取第一个学生的信息
  42.     @Test
  43.     public void readOne() throws DocumentException {
  44.         //得到一个解析器
  45.         SAXReader reader = new SAXReader();
  46.         //看document的对象属性
  47.         Document document = reader.read(new File("src/main/java/students.xml"));
  48.         Element rootElement = document.getRootElement();
  49.         //拿到根节点下的学生的信息
  50.         List<Element> students = rootElement.elements("student");
  51.         Element student = (Element) students.get(0);
  52.         //输出学生的信息
  53.         Element name = student.element("name");
  54.         Element age = student.element("age");
  55.         Element gender = student.element("gender");
  56.         System.out.println(name.getText() + "\t" + age.getText() + "\t\t" + gender.getText());
  57.         System.out.println(student.attributeValue("id"));
  58.     }
  59.     //添加一个学生的信息
  60.     @Test
  61.     public void Student1() throws DocumentException {
  62.         ///得到一个解析器
  63.         SAXReader Reader = new SAXReader();
  64.         //返回一个dom对象
  65.         Document document = Reader.read(new File("src/main/java/students.xml"));
  66.         //拿到根元素
  67.         Element rootElement = document.getRootElement();
  68.         //得到学生信息
  69.         List<Element> elements = rootElement.elements();
  70.         for (Element student : elements) {
  71.             //得到student下的元素
  72.             Element name = student.element("name");
  73.             System.out.println(name.getText());
  74.         }
  75.     }
  76.     //添加节点
  77.     @Test
  78.     public void addStudent() throws DocumentException, IOException {
  79.         //得到解析器
  80.         SAXReader saxReader = new SAXReader();
  81.         //得到一个由文件解析成的dom对象,读取文件
  82.         Document read = saxReader.read(new File("src/main/java/students.xml"));
  83.         //得到dom对象的根元素
  84.         Element rootElement = read.getRootElement();
  85.         //创建一个学生对象
  86.         Element newStu = DocumentHelper.createElement("student");
  87.         //给元素添加属性
  88.         newStu.addAttribute("id", "04");
  89.         //给学生对象赋予子元素
  90.         Element newStu_name = DocumentHelper.createElement("name");
  91.         Element newStu_age = DocumentHelper.createElement("age");
  92.         Element newStu_gender = DocumentHelper.createElement("gender");
  93.         Element newStu_resume = DocumentHelper.createElement("resume");
  94.         newStu_name.setText("宋江");
  95.         newStu_age.setText("23");
  96.         newStu_gender.setText("男");
  97.         newStu_resume.setText("大好人");
  98.         //把子元素挂载到newStu上
  99.         newStu.add(newStu_name);
  100.         newStu.add(newStu_age);
  101.         newStu.add((newStu_gender));
  102.         newStu.add(newStu_resume);
  103.         //再把newStu加入到根节点
  104.         rootElement.add(newStu);
  105.         //直接输出会有中文乱码
  106.         OutputFormat output = OutputFormat.createPrettyPrint();
  107.         output.setEncoding("utf-8");
  108.         //将xml文件更新
  109.         XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/main/java/students.xml"));
  110.         xmlWriter.write(read);
  111.         xmlWriter.close();
  112.     }
  113.     //删除节点
  114.     @Test
  115.     public void delete() throws DocumentException, IOException {
  116.         //得到解析器
  117.         SAXReader saxReader = new SAXReader();
  118.         //得到一个由文件解析成的dom对象,读取文件
  119.         Document read = saxReader.read(new File("src/main/java/students.xml"));
  120.         //得到dom对象的根元素
  121.         Element rootElement = read.getRootElement();
  122.         //找到根元素下的第一个学生
  123.         Element student = (Element)rootElement.elements("student").get(0);
  124.         //找到该元素的父元素,然后用父元素删除子元素
  125.         student.getParent().remove(student);
  126.         //更新xml内容
  127.         //直接输出会有中文乱码
  128.         OutputFormat output = OutputFormat.createPrettyPrint();
  129.         output.setEncoding("utf-8");
  130.         //将xml文件更新
  131.         XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/main/java/students.xml"));
  132.         xmlWriter.write(read);
  133.         xmlWriter.close();
  134.     }
  135. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

李优秀

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表