zoukankan      html  css  js  c++  java
  • XML

    XML

    概念

    • XML:可扩展性标记语言(Extensible Markup Language)
    • XML与HTML的区别:
      1.XML语法要求严格,HTML语法松散
      2.XML中的标签都是自定义的,HTML标签是预定义的
      3.XML是存储数据的,HTML是展示数据的
    • XML功能:存储数据
      1.配置文件中
      2.在网络中传输

    语法

    • 基本语法:

      1. XML文件的扩展名是.xml
      2. XML的第一行必须写文档声明
      3. XML文档有且仅有一个根标签
      4. XML中的属性必须使用引号(单双引号都可以)引起来
      5. XML对大小写敏感(区分大小写)
    • 快速入门:

      1. 文档声明:
        • 格式:<? xml 属性列表>
        • 属性列表:
          1.version:版本号,必须写的属性
          2.encoding:解码方式(告知浏览器)
          3.standalone:是否独立:
          • yes:是独立的,不依赖于其他文件
          • no:不是独立的,依赖其他文件
      2. 指令(作为了解):结合CSS展示数据
        • <?xml -stylesheet type="text/css" href="a.css"?>
      3. 标签(自定义)
        • 规则:
          1. 名称可以包含字母,数字以及其他字符
          2. 名称不能以数字或者标点符号开头
          3. 名称不能以字母xml(或者XML,Xml等等)开头
          4. 名称之间不能包含空格
      4. 属性:id值唯一(约束)
      5. 文本:
        • CDATA区:在该区域中的文本都会保留原来的样式
          • 格式:<![CDATA [数据]]>
    • 约束:规定XML文档的书写规则

      1. 要求:

        • 可以在XML文档中引入约束文档
        • 可以简单读懂约束文档
      2. 分类:

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

        • 引入dtd文档到xml中
          • 内部dtd:将约束规则定义在XML文档中(不是很常用)
          • 外部dtd:将约束的规则定义在外部的dtd文件中
            • 本地:
            • 网络:
        • 缺点:对于数据审核不严格,只规定了数据的类型,并未检验数据的合法性!
      4. Schema:

        • 引入:
          1. 填写xml文档的根元素
          2. 引入xsi前缀 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          3. 引入xsd文件命名空间 xsi:schemaLocation="http://www.itcast.cn/xml student.xsd"
          4. 为每一个xsd约束声明一个前缀,作为标识,xmlns="http://www/itcast.cn/xml"

    解析:操作xml文档,将文档中的数据读取到内存中

    • 操作xml文档

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

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

      1. JAXP:sun公司提供的解析器,支持dom和sax两种思想
      2. DOM4J:一款非常优秀的解析器
      3. Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
      4. PULL:Android操作系统内置的解析器,sax方式的
    • Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

      • 快速入门:
        • 步骤:
          1. 导入jar包
          2. 获取Docunment对象
          3. 获取相应的标签Element对象
          4. 获取数据
      //第二步,从xml文档中获取document对象
          //获取student.xml路径
          String path = JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath();
          //解析xml文档,加载文档进内存,获取dom树--->Document对象
          Document document = Jsoup.parse(new File(path), "utf-8");
          //获取元素对象Element
          Elements elemens = document.getElementsByTag("name");
          //获取第一个name的Element对象
          Element element = elemens.get(0);
          //获取数据
          String name = element.text();
          System.out.println(name);
      
      • 对象的使用

        • Jsoup:工具类,可以解析xml和html文档,返回Document

          • parse:解析html或者xml文档,返回Document
            1. parse(File in, String charsetName):解析xml或者html文件
            2. parse(String html):解析xml或者html字符串
            3. parse(URL url, int timeoutMillis):通过网络路径获取指定的html或者xml的文档对象
        • Document:文档对象,代表内存中的dom树

          • 获取Element对象
            • getElementById(String id):根据id属性值获取唯一的element对象
            • getElementByTag(String tagName):根据标签名称获取元素对象集合
            • getElementByAttribute(String key):根据属性名称获取元素对象集合
            • getElementByAttributeValue(String key, String value):根据对应的属性名和属性值来获取元素对象集合
        • Elements:元素Element对象的集合。可以当作ArrayList来使用

        • Element:元素对象

          1. 获取子元素对象

            • getElementById(String id):根据id属性值获取唯一的element对象
            • getElementByTag(String tagName):根据标签名称获取元素对象集合
            • getElementByAttribute(String key):根据属性名称获取元素对象集合
            • getElementByAttributeValue(String key, String value):根据对应的属性名和属性值来获取元素对象集合
          2. 获取属性值

            • String attr(String key):根据属性名称获取属性值
          3. 获取文本内容

            • String text():获取文本内容
            • String html():获取标签体的所有内容(包括子标签的字符串内容)2020/8/14 21:35:52 2020/8/14 21:35:53
        • Node:节点对象

          • 是Document和Element的父类
      • 快捷查询方式

        1. selector:选择器
          • 使用的方法:Element select(String cssQuery)
            • 语法:参考Selector类中定义的语法
        2. Xpath:XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
          • 使用Jsoup的Xpath需要额外导入jar包
          • 需要参考相关手册
  • 相关阅读:
    Spring面试,IoC和AOP的理解
    WEB打印(jsp版)
    Spring事务管理机制的实现原理-动态代理
    spring面试题
    oracle PLSQL基础学习
    oracle创建表空间
    WM_CONCAT字符超过4000的处理办法
    Oracle 数据泵使用详解
    Oracle 数据泵详解
    linux下启动oracle
  • 原文地址:https://www.cnblogs.com/Arong123/p/13504585.html
Copyright © 2011-2022 走看看