ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

XML学习总结

2021-02-27 14:58:01  阅读:202  来源: 互联网

标签:XML 总结 xml 标签 元素 学习 dom4j 解析


XML学习总结

一、XML简介

  • 前言:
    XML是(Extensible Markup Language)可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。

  • 什么是XML?
    XML是可扩展的标记语言,类似于HTML,其设计宗旨是传输数据,而非显示数据。XML标签没有被预定义,需要自行定义标签。XML被设计为具有自我描述性,是W3C的推荐标准。

  • xml的作用?

      1、用来保存数据,而且这些数据具有自我描述性
      2、它还可以做为项目或者模块的配置文件
      3、还可以做为网络传输数据的格式(现在 JSON 为主)。
    

xml文件示例:

<?xml version="1.0" encoding="utf-8" ?>
<!-- 
    xml声明 
    version是版本的意思   
    encoding是编码  
    standalone="yes/no" 表示这个 xml 文件是否是独立的 xml 文件
-->
<books> <!-- 这是xml注释 -->
    <book id="SN123123413241"> <!-- book标签描述一本图书   id属性描述 的是图书 的编号  -->
        <name>java编程思想</name> <!-- name标签描述 的是图书 的信息 -->
        <author>华仔</author>		<!-- author单词是作者的意思 ,描述图书作者 -->
        <price>9.9</price>		<!-- price单词是价格,描述的是图书 的价格 -->
    </book>
    <book id="SN12341235123">	<!-- book标签描述一本图书   id属性描述 的是图书 的编号  -->
        <name>葵花宝典</name>	<!-- name标签描述 的是图书 的信息 -->
        <author>班长</author>	<!-- author单词是作者的意思 ,描述图书作者 -->
        <price>5.5</price>	<!-- price单词是价格,描述的是图书 的价格 -->
    </book>
</books>

二、XML语法

2.1 xml 注释

html 和 XML 注释 一样 : <!-- html 注释 -->

2.2 元素(标签)

  1. 什么是XML元素
    在这里插入图片描述

     元素是指从开始标签到结束标签的内容。
     例如:<title>java  编程思想</title>
    
  2. XML 命名规则

    XML 元素必须遵循以下命名规则:

     名称可以含字母、数字以及其他的字符 
     名称不能以数字或者标点符号开始 
     名称不能以字符 “xml”(或者 XML、Xml)开始 
     名称不能包含空格 
    
  3. xml 也 中的元素(标签)也 成 分成 单标签和双标签:

     单标签
     	格式: <标签名 属性=”值” 属性=”值” ...... />
     双标签
     	格式:< 标签名 属性=”值” 属性=”值” ......>文本数据或子标签</标签名>
    

    在这里插入图片描述

2.3 xml 属性

在这里插入图片描述
属性必须使用引号引起来,不引会报错示例代码

2.4 语法规则

  1. 所有 XML元素都须有关闭标签 (也就是闭合)
    在这里插入图片描述

  2. XML标签对大小写敏感

     <Message>这是错误的。</message>
     <message>这是正确的。</message> 
    
  3. XML必须正确地嵌套
    在这里插入图片描述

  4. XML文档必须有根元素

    根元素就是顶级元素,
    没有父标签的元素,叫顶级元素。
    根元素是没有父标签的顶级元素,而且是唯一一个才行。
    在这里插入图片描述

  5. XML的属性值须加引号
    在这里插入图片描述

  6. XML中的特殊字符
    在这里插入图片描述

  7. 文本区域(CDATA区)
    CDATA 语法可以告诉 xml 解析器,我 CDATA 里的文本内容,只是纯文本,不需要 xml 语法解析

     CDATA 格式:
     <![CDATA[ 这里可以把你输入的字符原样显示,不会解析 xml ]]>
    

    在这里插入图片描述

三、xml解析技术介绍

  • xml解析就是把xml文档转换为xmlDOM 对象

  • 早期 JDK 为我们提供了两种xml解析技术 DOM和 Sax简介( 已经过时,但我们需要知道这两种技术 )

  • dom 解析技术是 W3C 组织制定的,而所有的编程语言都对这个解析技术使用了自己语言的特点进行实现。Java 对 dom 技术解析标记也做了实现。

  • sun 公司在 JDK5 版本对 dom 解析技术进行升级:SAX( Simple API for XML )
    SAX 解析,它跟 W3C 制定的解析不太一样。它是以类似事件机制通过回调告诉用户当前正在解析的内容。它是一行一行的读取 xml 文件进行解析的。不会创建大量的 dom 对象。所以它在解析 xml 的时候,在内存的使用上。和性能上。都优于 Dom 解析。

第三方的解析技术:

jdom 在 dom 基础上进行了封装 、
dom4j 又对 jdom 进行了封装。(重点)
pull 主要用在 Android 手机开发,是在跟 sax 非常类似都是事件机制解析 xml 文件。

四、dom4j解析技术 (重点)

由于 dom4j它不是 sun 公司的技术,而属于第三方公司的技术,我们需要使用 dom4j 就需要到 dom4j官网下载dom4j的jar包。
在这里插入图片描述

dom4j 编程步骤:

第一步:添加 dom4j 的 jar 包。并添加到类路径。
第二步:先加载 xml 文件创建 Document 对象
第三步:通过 Document 对象拿到根元素对象
第四步:通过根元素.elelemts(标签名); 可以返回一个集合,这个集合里放着。所有你指定的标签名的元素对象
第五步:找到你想要修改、删除的子元素,进行相应在的操作

代码示例:

@Test
public void test2() throws Exception{
    //1.创建一个saxReader输入流,去读取xml配置文件,生成Document对象
    SAXReader reader = new SAXReader();
    Document document = reader.read("src/books.xml");
    //2.通过Document对象获取跟元素
    Element rootElement = document.getRootElement();
    //3.通过跟元素获取book标签对象
    //element() 和 elements()都是通过标签名查找子元素
    List<Element> books = rootElement.elements();// Element.elements(标签名)它可以拿到当前元素下的指定的子元素的集合

    //4.遍历,处理每个book标签转换为Book类
    for(Element book : books){
        //axXML() 把标签对象转换为标签字符串
        Element nameElement = book.element("name");
        //getText() 方法拿到起始标签和结束标签之间的文本内容
        String nameText = nameElement.getText();
        //直接获取指定标签名的文本内容
        String priceText = book.elementText("price");
        String authorText = book.elementText("author");
        //获取标签对象的属性值
        String snValue = book.attributeValue("sn");
        System.out.println(new Book(snValue,nameText,Double.parseDouble(priceText),authorText));
    }
}

需要解析的 books.xml 文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<books>
    <book sn="SN12341232">
        <name>辟邪剑谱</name>
        <price>9.9</price>
        <author>班主任</author>
    </book>
    <book sn="SN12341231">
        <name>葵花宝典</name>
        <price>99.99</price>
        <author>班长</author>
    </book>
</books>

标签:XML,总结,xml,标签,元素,学习,dom4j,解析
来源: https://blog.csdn.net/weixin_44630656/article/details/114155935

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有