zoukankan      html  css  js  c++  java
  • xml

    Xml:

    eXtendsible  markup language  可扩展的标记语言

    XML 有什么用?

    1. 可以用来保存数据

    2. 可以用来做配置文件

    3. 数据传输载体

    定义xml

    > 其实就是一个文件,文件的后缀为 .xml

     文档声明

            简单声明, version : 解析这个xml的时候,使用什么版本的解析器解析
            <?xml version="1.0" ?>
        
            encoding : 解析xml中的文字的时候,使用什么编码来翻译
            <?xml version="1.0" encoding="gbk" ?>
        
            standalone  : no - 该文档会依赖关联其他文档 ,  yes-- 这是一个独立的文档
            <?xml version="1.0" encoding="gbk" standalone="no" ?>

    encoding详解
    > 在解析这个xml的时候,使用什么编码去解析。   ---解码。

         文字, 而是存储这些文字对应的二进制 。 那么这些文字对应的二进制到底是多少呢? 根据文件使用的编码 来得到。

     默认文件保存的时候,使用的是GBK的编码保存。

    所以要想让我们的xml能够正常的显示中文,有两种解决办法

    1. 让encoding也是GBK 或者 gb2312 .

    2. 如果encoding是 utf-8 , 那么保存文件的时候也必须使用utf-8

    3. 保存的时候见到的ANSI 对应的其实是我们的本地编码 GBK。

    为了通用,建议使用UTF-8编码保存,以及encoding 都是 utf-8

    xml标签:

    与HTML一样使用< >来创建:

    元素是可以自定义的例如:

    <?xml version="1.0" encoding="UTF-8"?>
    <stu>
    <name>刘海清</name>
    <sex></sex>
    <age>18</age>
    <telephone>17679072513</telephone>
    </stu>

    定义了一个stu标签里面嵌套了name-----sex----age----telephone---

    元素的第一个标签为跟标签

    XML 命名规则
           XML 元素必须遵循以下命名规则:
           名称可以含字母、数字以及其他的字符
           名称不能以数字或者标点符号开始
           名称不能以字符 “xml”(或者 XML、Xml)开始
           名称不能包含空格
        命名尽量简单,做到见名知义
    简单元素与复杂元素:

    简单元素里面只有文字

    <?xml version="1.0" encoding="UTF-8"?>
    <stu>
    <name>刘海清</name>
    <sex>男</sex>
    <age>18</age>
    <telephone>17679072513</telephone>
    </stu>

    复杂元素里面嵌套其他元素:

    <?xml version="1.0" encoding="UTF-8"?>
    <stu>
    <name>刘海清</name>
    <sex>男</sex>
    <age>18</age>
    <telephone>17679072513</telephone>
    </stu>

    加入属性:

    <?xml version="1.0" encoding="UTF-8"?>
    <stus>
    <stu id="1">
    <!-- 加入id属性 -->
    <name>刘海清</name>
    <age>18</age>
    </stu>
    </stus>

    xml注释:

    与html的注释一样。

        <!-- -->
        如:
        
            <?xml version="1.0" encoding="UTF-8"?>
            <!--
                //这里有两个学生
                //一个学生,名字叫张三, 年龄18岁, 学号:10086
                //另外一个学生叫李四  。。。
             -->

     xml的注释,不允许放置在文档的第一行。 必须在文档声明下面

     在 XML 中,有 5 个预定义的实体引用:

    &lt; <  
    &gt; >  
    &amp; &  
    &apos; '  
    &quat; "  

    CDATA:

    如果内容过多里面有包含关键字或者是标签符号的可以使用CDATA

    [DATA[里面为内容]]

    <?xml version="1.0"?>
    
    <des><![CDATA[<a href="http://www.baidu">百度</a>]]></des>

    Xml解析:

    其实就是获得xml中的字符串或者是属性值

    XML解析方式(面试常问)

     有很多种,但是常用的有两种。

    DOM

    SAX

    针对这两种解析方式的API

    一些组织或者公司, 针对以上两种解析方式, 给出的解决方案有哪些?

            jaxp  sun公司。 比较繁琐

            jdom
            dom4j  使用比较广泛
    Dom4j的用法:

    需要先导入Dom4j包

    接下来写代码:

    package com.itheima.xml;
    
    import java.io.File;
    import java.util.List;
    
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    
    public class Mian {
    
        public static void main(String[] args) throws DocumentException {
            // TODO Auto-generated method stub
            SAXReader reader = new SAXReader();
            //创建SAXReader对象
            Document document = reader.read(new File("src/demo.xml"));
            //加载xml,
            Element element = document.getRootElement();
            //获得跟标签
            List<Element> list=element.elements();
            //获得跟标签下的所有element
            for (Element element2 : list) {
            //遍历
                System.out.println(element2.getText());
                System.out.println(element2.getText());
            }
        }

    好了解析xml就到这里

    你不会的东西,觉得难的东西,一定不要躲。先搞明白,后精湛,你就比别人优秀了。因为大部分人都不舍得花力气去钻研,自动淘汰,所以你执着的努力,就占了大便宜。奋斗就是每一天都很难,可一年比一年容易。不奋斗就是每一天都很容易,可一年比一年越难。怕吃苦的人吃苦一辈子,不怕吃苦的人吃苦一阵子。拼一个春夏秋冬,赢一个无悔人生
  • 相关阅读:
    BZOJ_1712_[Usaco2007 China]Summing Sums 加密_矩阵乘法
    BZOJ_2693_jzptab_莫比乌斯反演
    BZOJ_5296_[Cqoi2018]破解D-H协议_BSGS
    BZOJ_5301_[Cqoi2018]异或序列&&CF617E_莫队
    前端开发框架对比
    现在企业流行的java框架技术
    尼古拉斯·沃斯
    算法和流程图
    Java中DAO的实现
    java中的DAO设计模式
  • 原文地址:https://www.cnblogs.com/ahJava/p/9739642.html
Copyright © 2011-2022 走看看