XML相关知识点

    xiaoxiao2021-04-15  41

    XML顾名思义是扩展性标记语言,它具有规范性,现列出操作:

    XML的相关格式:

    1.<?xml version="1.0" encoding="utf-8" standalone="yes" ?>---standalone表示当前xml是否是一个独立的文档;

    2.元素标签:  一个xml标签就是一个xml元素, xml文件必须要有一个根元素(包含所有元素的元素叫做根元素) 

    3.命名规范:  >区分大小写,例如,<P>和<p>是两个不同的标记。  >不能以数字或标点符号或"_"开头。  >不能以xml(或XML、或Xml 等)开头。  >不能包含空格。  >名称中间不能包含冒号(:)。属性:一个标签可以有多个属性,每个属性都有它自己的名称和取值,例如:   <china capital="beijing"/>注释:Xml文件中的注释采用:“<!--注释-->” 格式。

    4.xml引入dtd文件方式:(1) 外部引入: dtd是一个独立文件 ,这个文件的后缀为dtd,<!DOCTYPE 根元素名称 SYSTEM dtd文件位置> --SYSTEM 引用的是当前系统的dtd   <!DOCTYPE 根元素名称 PUBLIC DTD文件的URL> --PUBLIC 引用的是网络公共位置上的dtd;(2) 内部引入:直接在xml文件中写 DTD   <!DOCTYPE 根元素的名称[    dtd的约束   ]>  DTD的约束可以定义在XML文件内部,如果DTD被定义在了XML内部则XML文档声明中standalone="yes" DTD的约束也可以定义在一个独立的后缀为.dtd的文件中再由xml文件引入,此时引入此dtd的xml文档声明中standalone="no"DTD语法:(1)元素定义   <!ELEMENT 元素名称 元素约束> 元素类型  元素约束   ANY/EMPTY   子元素列表,将可以包含的子元素用小括号括起来    用逗号分隔,表示内容的出现顺序必须与声明时一致。     <!ELEMENT MYFILE (TITLE,AUTHOR,EMAIL)>     用|分隔,表示任选其一,即多个只能出现一个     <!ELEMENT MYFILE (TITLE|AUTHOR|EMAIL)>   +: 一次或多次 (书+)   ?: 0次或一次 (书?)    *: 0次或多次  (书*)属性定义:语法格式:   <!ATTLIST 元素名     属性名1 属性类型 属性约束    属性名2 属性类型 属性约束    ……   >   5.属性类型    CDATA:表示属性值为普通文本字符串。    ENUMERATED :枚举类型    ID:在整个xml中id不可重复

    6.属性约束    #REQUIRED:必选    #IMPLIED:可选    #FIXED:固定值,属性的取值为固定的一个值    默认值

    解析方法:

    1.获得解析Reader对象

    SAXReader reader=new SAXReader();

    2.读取对应的xml文件

    Document doc=reader.read("domFile.xml");

    3.获得读取文件的根节点

     Element element=doc.getRootElement();

    4.获取根节点下的子节点

     Element bookE1=element.element("书").element("书名");

    5.获得子节点的文本内容

    String bookName=bookE1.getText();      System.out.println(bookName);

    添加节点功能的实现:

    1.使用DocumentHelper创建一层层节点,在新生成的节点可设置属性

     Element newBook=DocumentHelper.createElement("书");   Element new1=DocumentHelper.createElement("书名");   new1.addAttribute("编号","a3");   Element new2=DocumentHelper.createElement("作者");   Element new3=DocumentHelper.createElement("售价");

    2.上层节点加上下层节点

      newBook.add(new1);   newBook.add(new2);   newBook.add(new3);   root.add(newBook);

    3.写入到文件中

    //将读取的文件放在文件输出流中

      OutputStream w=new FileOutputStream("domFile.xml");

    //创建XMLWriter对象,这样能够让XML多行书写

     XMLWriter writer=new XMLWriter(w, OutputFormat.createPrettyPrint());

    //写出文档

      writer.write(doc);

      writer.close();   System.out.println("完成");

    删除节点操作:

    1.获取对应节点:

    List list=root.elements("书");

    Element secBook=(Element) list.get(1);

    2.移除对应节点

      root.remove(secBook);

    3.写入到文件中

      OutputStream w=new FileOutputStream("domFile.xml");

      XMLWriter writer=new XMLWriter(w);   System.out.println("完成");

    转载请注明原文地址: https://ju.6miu.com/read-671178.html

    最新回复(0)