ICode9

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

XML

2021-05-03 19:58:09  阅读:150  来源: 互联网

标签:XML xml String parse html 文档 内存


XML

W3C:万维网联盟

  1. 概念:可扩展标记语言

    • 可扩展 : 标签都是自定义的。
    • 功能 : 1.配置文件 2.在网络中传输
    • xml和html的区别:
      1. xml的标签是自定义的,html标签是预定义的
      2. xml的语法严格,html语法松散
      3. xml是存储数据的,html是展示数据的
  2. 快速入门:

    • 基本语法:
      1. xml文档的后缀名 .xml
      2. xml第一行必须定义为文档声明
      3. xml文档中有且仅有一个根标签
      4. 属性值必须有引号引起来
      5. 标签必须正确关闭
  3. 组成部分:

    • 文档声明 : <?xml 属性列表>
      1. version:版本号,必须的属性
      2. encoding:编码方式
      3. standalone : 是否独立(yes / no)
    • 指令 : <?xml-stylesheet type="text/css" href="a.css" ?>
    • 标签 : 标签名自定义
    • 属性 : id值唯一
    • 文本 : CDATA区:在该区域的数据会被原样展示
      格式 : <![CDATA[ 数据 ]]>
  4. 约束: 规定xml文档的书写规则

    • 分类

      1. DTD : 一种简单的约束技术
      2. Schema : 一种复杂的约束技术
    • DTD :

      1. 引入DTD文档到xml文档中
        内部dtd: 将约束规则定义在外部的dtd文件中
        外部dtd: 将约束规则定义在外部的dtd文件中
        1. 本地: <!DCTYPE student SYSTEM "student.dtd">
        2. 网络: <!DCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的位置URL">
    • Schema

      1. 引入xml 文档的根元素
      2. 引入xsi前缀, xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
      3. 引入xsd文件命名空间, xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd”>
      4. 为每一个xsd约束声明一个前缀,作为标识 xmlns=“http://maven.apache.org/POM/4.0.0”
  5. 解析: 操作xl文旦,将文档中的数据读取到内存中

    • 操作xml文档

      1. 解析 (读取)
      2. 写入:将内存中的数据保存到xml文档中持久化的存储
    • 解析xml的方式

      1. DOM : 将标记语言文档一次性加载进内存,在内存中形成一颗dom树
        • 优点 : 操作方便,可以对文档进行CRUD的所有操作
        • 缺点 : 占内存
      2. SAX : 逐行读取,基于事件驱动
        • 优点:不占内存
        • 缺点: 只能读取
    • xml常见的解析器:

      1. JAXP : sun公司提供的解析器,支持dom和sax两种思想
      2. DOM4J:一款非常优秀的解析器
      3. Jsoup :
      4. PULL : Android操作系统内在的解析器,sax方式
    • Jsoup的使用
      1. Jsoup: 工具类.可以解析html或xml文档,返回Document
      - parse : 解析html或xml文档,返回document
      - parse(File in, String charsetName) : 解析xml或html文件的
      - parse(String html) : 解析xml或html字符串
      - parse(URL url, int timeoutMillis) : 通过网络路径获取指定的html或xml的文档对象
      2. Docment : 文档对象,代表内存中的dom树
      - 获取Element对象
      - getElementsByTag(String tagname) : 根据标签名称获取元素集合
      - getElementsByAttribute(String key) : 根据属性名称获取元素对象集合
      - getElementsByAttributeValue(String key,String value) : 根据对应的属性名和属性值获取元素对象集合
      4. Element : 元素Element对象的集合。可以当做 ArrayList来使用
      5. Element : 元素对象
      6. Node: 节点对象

public class JsoupDemo1 {
    public static void main(String[] args) throws IOException {
        //获取Document对象,根据xml文档获取
        //获取student.xml的path
        String path = JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath();
        //解析xml文档,加载文档进内存
        Document parse = Jsoup.parse(new File(path), "utf-8");
        //获取元素对象.Element
        Elements elements = parse.getElementsByTag("name");
        System.out.println(elements.size());
        Element element = elements.get(0);
        //获取数据
        String name = element.text();
        System.out.println(name);
    }
}

标签:XML,xml,String,parse,html,文档,内存
来源: https://blog.csdn.net/jklove111/article/details/116378280

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

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

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

ICode9版权所有