美文网首页
xml 在java 中的应用

xml 在java 中的应用

作者: LX_代码制造坊 | 来源:发表于2020-01-10 18:30 被阅读0次

    xml是什么?

    X(extensible,可扩展的),M(markup,标签),L(language,语言)

    作用:

    1、存储数据,比如游戏中的等级装备等;
    2、传输数据,网络中传输数据;
    3、配置文件,.properties,.xml

    特点:

    1、平台无关性
    2、xml发布之后的所有语言都支持xml
    3、自我描述性(内容自定义)

    语法规则

    1、xml文件必须有根元素
    2、xml元素(标签)有开必有合
    3、xml元素对大小写敏感
    4、xml元素必须正确嵌套
    5、xml元素属性必须加引号(单双都可以)
    (1)html文件中,所有元素(标签)都是官方定义好的,我们直接引用
    (2)xml文件中,所有元素自定义

    CDATA区

    在xml中书写特殊富豪时,报错,忽略其本性,变成普通的字符串。
    <![CDATA[ 10 <5 ]]>

    DTD文件

    1、DTD的英文:document type definition 文档类型定义
    2、DTD作用是规范xml中的标签
    3、dtd跟xml的联系就如同类和对象的关系(mybatis文件中会引用该方式)

    dtd

    <!ELEMENT students (student*)>
    <!ELEMENT student (name,age)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT age (#PCDATA)>
    

    xml

    <!DOCTYPE students SYSTEM "test2.dtd">
    <students>
        <student>
            <name></name>
            <age></age>
        </student>
    </students>
    
    XSD文件

    1、xsd是xml结构定义
    2、xsd是dtd的替代品,比dtd高端
    3、xsd的优点
    1)xsd的代码基于xml,没有专门的语法,和xml一样的解析和处理
    2)xsd支持一系列的数据类型

    解析xml

    1、DOM解析
    2、SAX解析
    3、JDOM解析
    4、DOM4J解析
    前两种属于基础方法,是官方提供的与平台无关的解析方式;
    后两种属于扩展方法,他们是在基础的方法之上扩展出来的,只适用于java平台。

    DOM解析
    dom解析的原理解析xml的时候,把文档中的所有元素按照其出现的层次关系,在内存中构造出树形结构。
    dom的优点就是可以遍历和修改节点的内容。
    缺点是内存压力较大,解析较慢。
    
    SAX解析
    是一种xml解析的替代方法
    相对比dom方式,sax是一种速度更快,更有效的方法
    不能修改节点内容
    
    JDOM解析
    仅适用于具体的类,而不用接口,不灵活
    
    DOM4J(重点,性能最高)

    JDOM的一种智能分支,合并类许多超出基本xml文档的

    案例

    //1、将xml文件放入jvm内存中
    InputStream is = TextXml.class.getClassLoader().getResourceAsStream("文件地址");
    //2、获取文档对象,转换为一个文档对象
    SAXReader sax = new SAXReader();
    Document doc = sax.read(is);
    //3、获得根元素
    Element root = doc.getRootElement();
    //4、获取根元素下的所有子元素
    List<Element> list = root.elements();
    //5、遍历根下子元素并获取值
    for(Element e1 : list){
        LIst<Element> list2 = e1.elements();
        for(Element e2 : list2){
            System.out.println(e2.getName()+":"+e2.getData());
        }
    }
    //6、遍历元素的属性并获取值
    for(Element e1 : list){
        Attribute type = e1.attribute("type");
        System.out.println(type.getValue);
    }
    

    相关文章

      网友评论

          本文标题:xml 在java 中的应用

          本文链接:https://www.haomeiwen.com/subject/exddactx.html