• 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();
        }
        }
         
  • 相关阅读:
    洛谷 P5162 WD与积木 解题报告
    Problem B: 专家系统 解题报告
    HWND、HANDLE、HMODULE、HINSTANCE的区别
    ubuntu找不到ifconfig
    ubuntu找不到ifconfig
    python中安装包出现Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))…………
    python中安装包出现Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))…………
    operator new 与 placement new之音的微妙关系
    operator new 与 placement new之音的微妙关系
    pycharm 使用记录
  • 原文地址:https://www.cnblogs.com/fatRabbit-/p/10149662.html
Copyright © 2020-2023  润新知