AJAX + JSON + XML(二)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: AJAX + JSON + XML相关介绍

XML

1.XML的概述

1>.什么是XML

  • Extensible Makup Language 可扩展标记语言

可扩展:标签都是自定义的 <user> <student>

2>. 功能

  • 存储数据 (1. 配置文件 2. 在网络中传输)

3>. xml与html的区别

  • ①. xml标签都是自定义的,html标签是预定义。
  • ②. xml的语法严格,html语法松散
  • ③. xml是存储数据的,html是展示数据

4>. xml快速入门

  • ①. xml文档的后缀名 .xml
  • ②. xml第一行必须定义为文档声明(xml version=‘1.0’)
  • ③. xml文档中有且仅有一个根标签(users)
  • ④. 属性值必须使用引号(单双都可)引起来
  • ⑤. 标签必须正确关闭
  • ⑥. xml标签名称区分大小写
  <?xml version='1.0' ?>
      <users>
        <user id='1'>
          <name>zhangsan</name>
          <age>23</age>
          <gender>male</gender>
          <br/>
        </user>
          <user id='2'>
          <name>lisi</name>
          <age>24</age>
          <gender>female</gender>
        </user>
      </users>

2. xml组成部分

1>. 格式

  • <?xml 属性列表 ?>

2>. 属性列表

  • ①. version:版本号,必须的属性
  • ②. encoding:编码方式。告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1
  • ③. standalone:是否独立(yes:不依赖其他文件;no:依赖其他文件)

20190809203639249.png

3>. 规则

  • ①.名称可以包含字母、数字以及其他的字符
  • ②. 名称不能以数字或者标点符号开始
  • ③. 名称不能以字母 xml(或者 XML、Xml 等等)开始
  • ④. 名称不能包含空格

4>. 文本

  • CDATA区:在该区域中的数据会被原样展示 ;格式:<![CDATA[ 数据 ]]>

20190809204340418.png

3. xml约束概述(了解)

  • 约束:规定xml文档的书写规则
  • 分类:①. DTD:一种简单的约束技术 ②. Schema:一种复杂的约束技术

注意:

作为框架的使用者(程序员):

(1).能够在xml中引入约束文档

(2).能够简单的读懂约束文档

20190809205521112.png

1>.dtd

20190809211440805.png

20190809211159223.png

2>. schema 约束(掌握)

20190817115334302.png

20190817120342172.png

4. 解析方式

1>.解析方式的概述

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

操作xml文档

1.解析(读取):将文档中的数据读取到内存中

2.写入:将内存中的数据保存到xml文档中。持久化的存储

2>. 解析xml的方式[ 面试题 ]

 - DOM(服务器端):将标记语言文档一次性加载进内存,在内存中形成一颗dom树
  * 优点:操作方便,可以对文档进行CRUD的所有操作
  * 缺点:占内存
 - SAX(移动端):逐行读取,基于事件驱动的。
  * 优点:不占内存。
  * 缺点:只能读取,不能增删改

5. xml解析器

1>.常见解析器

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


2>. Jsoup的快速入门

//Jsoup的快速入门
public class JsoupDemo1 {
    public static void main(String[] args) {
        //1.导入jar包
        //2.获取document对象,根据一个xml文档来获取
        //2.1获取student.xml的path
        String path = JsoupDemo1.class.getClassLoader().getResource("users.xml").getPath();
        try {
            //2.2  解析xml文档,加载文档进内存 获取dom树-- > Document
            Document document = Jsoup.parse(new File(path), "utf-8");
            //3.获取元素对象Elements 这里有两个name,所以这里的长度是2
            Elements elements = document.getElementsByTag("name");
            System.out.println(elements.size());
            //3.1 获取第一个name的Element对象
            Element element=elements.get(0);
            //3.2 获取数据
            String text = element.text();
            System.out.println(text);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3>. 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.1获取student.xml的path
        String path = JsoupDemo2.class.getClassLoader().getResource("student.xml").getPath();
        //2.2解析xml文档,加载文档进内存,获取dom树--->Document
       /* Document document = Jsoup.parse(new File(path), "utf-8");
        System.out.println(document);*/
       //2.parse​(String html):解析xml或html字符串
       /* String str = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
                "\n" +
                "<students>\n" +
                "\t<student number=\"heima_0001\">\n" +
                "\t\t<name>tom</name>\n" +
                "\t\t<age>18</age>\n" +
                "\t\t<sex>male</sex>\n" +
                "\t</student>\n" +
                "\t<student number=\"heima_0002\">\n" +
                "\t\t<name>jack</name>\n" +
                "\t\t<age>18</age>\n" +
                "\t\t<sex>female</sex>\n" +
                "\t</student>\n" +
                "\n" +
                "</students>";
        Document document = Jsoup.parse(str);
        System.out.println(document);*/
       //3.parse​(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象
        URL url = new URL("https://baike.baidu.com/item/jsoup/9012509?fr=aladdin");//代表网络中的一个资源路径
        Document document = Jsoup.parse(url, 10000);
        System.out.println(document);

2. Document:文档对象。代表内存中的dom树

获取Element对象(所有的树结构中的元素)

  • ①. getElementById(String id):根据id属性值获取唯一的element对象
  • ②. getElementsByTag(String tagName):根据标签名称获取元素对象集合
  • ③. getElementsByAttribute(String key):根据属性名称获取元素对象集合
  • ④. getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合

3. Elements

元素Element对象的集合。可以当做 ArrayList<Element>来使用

4. Element:元素对象

1. 获取子元素对象
  * getElementById​(String id):根据id属性值获取唯一的element对象
  * getElementsByTag​(String tagName):根据标签名称获取元素对象集合
  * getElementsByAttribute​(String key):根据属性名称获取元素对象集合
  * getElementsByAttributeValue​(String key, String value):根据对应的属性名和属性值获取元素对象集合
2. 获取属性值
  * String attr(String key):根据属性名称获取属性值
3. 获取文本内容
  * String text():获取文本内容
  * String html():获取标签体的所有内容(包括字标签的字符串内容)

20190810083731801.png

5.Node:节点对象

  • 是Document和Element的父类

6.Jsoup根据选择器查询

1>.selector:选择器

  • Elements select(String cssQuery)

2>. XPath

XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言






相关文章
|
3月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
49 1
|
4月前
|
XML JSON 前端开发
【Web前端揭秘】XML与JSON:数据界的双雄对决,你的选择将如何改写Web世界的未来?
【8月更文挑战第26天】本文深入探讨了XML和JSON这两种广泛使用的数据交换格式在Web前端开发中的应用。XML采用自定义标签描述数据结构,适用于复杂层次数据的表示,而JSON则以键值对形式呈现数据,更为轻量且易解析。通过对两种格式的示例代码、结构特点及应用场景的分析,本文旨在帮助读者更好地理解它们的差异,并根据实际需求选择最合适的数据交换格式。
67 1
|
3月前
|
XML JSON 数据处理
C# 中的 XML 与 JSON 数据处理
在现代软件开发中,数据交换和存储需求日益增长,XML 和 JSON 成为最常用的数据格式。本文从 C# 角度出发,详细介绍如何处理这两种格式,并提供示例代码。对于 XML,我们介绍了读取、创建和写入 XML 文件的方法;对于 JSON,则展示了如何使用 Newtonsoft.Json 库进行数据解析和序列化。此外,文章还总结了常见问题及其解决方案,帮助开发者更好地应对实际项目中的挑战。
195 61
C# 中的 XML 与 JSON 数据处理
|
2月前
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
241 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
|
2月前
|
XML JSON 前端开发
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
492 0
|
3月前
|
JSON 前端开发 JavaScript
JavaWeb基础8——Filter,Listener,Ajax,Axios,JSON
Filter过滤器、Listener监听器、AJAX、 同步、异步优点和使用场景、Axios异步框架、JSON、js和JSON转换、案例,Axios + JSON 品牌列表查询和添加
JavaWeb基础8——Filter,Listener,Ajax,Axios,JSON
|
4月前
|
XML 前端开发 JavaScript
Ajax(Asynchronous JavaScript and XML)
【8月更文挑战第16天】
34 3
|
4月前
|
XML JSON Java
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
本文介绍了如何使用IntelliJ IDEA和Maven搭建一个整合了Struts2、Spring4、Hibernate4的J2EE项目,并配置了项目目录结构、web.xml、welcome.jsp以及多个JSP页面,用于刷新和学习传统的SSH框架。
104 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
|
4月前
|
Java Spring 容器
彻底改变你的编程人生!揭秘 Spring 框架依赖注入的神奇魔力,让你的代码瞬间焕然一新!
【8月更文挑战第31天】本文介绍 Spring 框架中的依赖注入(DI),一种降低代码耦合度的设计模式。通过 Spring 的 DI 容器,开发者可专注业务逻辑而非依赖管理。文中详细解释了 DI 的基本概念及其实现方式,如构造器注入、字段注入与 setter 方法注入,并提供示例说明如何在实际项目中应用这些技术。通过 Spring 的 @Configuration 和 @Bean 注解,可轻松定义与管理应用中的组件及其依赖关系,实现更简洁、易维护的代码结构。
58 0
|
4月前
|
XML JSON 前端开发
JSON与AJAX:网页交互的利器
JSON与AJAX:网页交互的利器
41 0