XML

  • 什么是XML?  
    • XML是指可扩展标记语言(eXtensible Markup Language)
    • 它是一种标记语言,很类似HTML。
    • 在XML语言中,它允许用户自定义标签。一个标签可分为开始标签和结束标签,在开始标签和结束标签之间,又可以使用其它标签描述其他数据,以此来实现数据关系的描述。
  • XML的用途
    • 主要用于传输数据
  • XML的应用
    • 不同的系统之间传输数据
    • 用来表示生活中有关系的数据
    • 配置文件,以描述程序模块之间的关系。
  • XML注意
    • 由于在XML中,空格和换行(格式二)都作为原始内容被处理。所以在编写XML文件时,使用换行和缩进等方式让原文件中等书写习惯要改变。  
      <!-- 格式一 -->
      <username>fatRabbit</username>
      <!-- 格式二 -->
      <username>
          fatRabbit
      </username>
  • XML标签的命名规则
    • xml代码区分大小写
    • 不能以数字和下划线(_)开头
    • xml的标签不能以xml、XML、Xml等开头
    • xml的标签不能包含空格和冒号
  • XML标签的属性定义规则
    • 一个标签可以有多个属性
    • 属性名称不能相同
    • 属性名称和属性值之间使用=,属性值使用引号(单、双都可以)包起来
    • 属性命名与元素命名规范一致
  • XML标签特殊字符
    • &:&amp;
    • <:&ly;
    • >:&gt;
    • ":&quot;
    • ': &apos;
  • CDATA区
    • 可以解决多个字符都需要转义的操作
    • 把这些内容放入CDATA区里面,不需要转义了
    • 把特殊字符,当作文本内容处理,而不是标签
    •  <![CDATA[内容]]>
  • PI指令
    • 设置样式,只对英文标签名称起作用
      <?xml-stylesheet type="text/css" href=""?>
  • 读取XML
    •    
      <?xml version="1.0" encoding="utf-8" ?>
      <?xml-stylesheet type="text/css" href=""?>
      <!--
      version:xml版本
      encoding:xml编码
      standalong:是否需要依赖其他文件
      -->
      <user>
      <info>
      <username>rabbit</username>
      <password>fat</password>
      </info>
      </user>




      /** * 获取document对象 * * @param path xml路径 * @return * @throws DocumentException */ private Document getDocumentObject(String path) throws DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(path); return document; } /** * 解析xml * @throws DocumentException */ private void paramXML() throws DocumentException { Document document = getDocumentObject(this.getClass().getResource("/").getPath() + "../../xml/test.xml"); Element e = document.getRootElement(); Iterator iterator = e.elementIterator(); while (iterator.hasNext()) { Element next = (Element) iterator.next(); String username = next.elementTextTrim("username"); String password = next.elementTextTrim("password"); System.out.println("username=" + username + ",password=" + password); } }


      /**
      * 添加节点
      * @param ub
      * @throws DocumentException
      */
      public void writeXML(UserBean ub) throws DocumentException {
      SAXReader reader = new SAXReader();
      String path = this.getClass().getResource("/").getPath() + "../../xml/test.xml";
      Document document = reader.read(path);
      Element rootElement = document.getRootElement();
      Element element = rootElement.addElement("info");
      //添加子节点
      Element username = element.addElement("username");
      //设置节点文字
      username.setText(ub.getUsername());
      Element password = element.addElement("password");
      password.setText(ub.getPassword());
      Element phone = element.addElement("phone");
      phone.setText(ub.getPhone());
      Element email = element.addElement("email");
      email.setText(ub.getEmail());
      try {
      //写入到文件
      OutputFormat of = OutputFormat.createPrettyPrint();
      of.setEncoding("UTF-8");
      XMLWriter writer = new XMLWriter(new FileWriter(path), of);
      writer.write(document);
      writer.close();
      } catch (IOException e) {
      e.printStackTrace();
      }
      }
       
原文地址:https://www.cnblogs.com/fatRabbit-/p/10149662.html