zoukankan      html  css  js  c++  java
  • 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();
        }
        }
         
  • 相关阅读:
    Java Web项目开发中常见路径获取方法
    Genymotion模拟器连接不上开发服务器解决办法
    百度鹰眼轨迹管理台部署到本地或者服务器上
    解决Hibernate4执行update操作,不更新数据的问题
    后台发送http请求通用方法,包括get和post
    Java后端发出post请求带参数并接收返回的json
    $.ajax()方法详解
    常见异常及解决办法
    jQuery通过地址获取经纬度demo
    python 导入模块与使用
  • 原文地址:https://www.cnblogs.com/fatRabbit-/p/10149662.html
Copyright © 2011-2022 走看看