XML随笔(1)

本文介绍了XML文档的结构、CSS的应用、不同解析技术(如DOM、SAX)、DTD和Schema约束、如何在Spring框架中使用Schema,以及Java解析HTML的Jsoup库。还提到了面试题整理和资源分享,关注Java开发者技能提升和实践应用。
摘要由CSDN通过智能技术生成

结合css的:<?xml-stylesheet type="text/css" href="a.css" ?>

  1. 标签

标签名称自定义的。

规则

  • 名称可以包含字母、数字以及其他的字符 。

  • 名称不能以数字或者标点符号开始 。

  • 名称不能以字母 xml(或者 XML、Xml 等等)开始 。

  • 名称不能包含空格 。

  1. 属性

id属性值唯一。

  1. 文本

CDATA区:在该区域中的数据会被原样展示。

格式<![CDATA[ 数据 ]]>

<![CDATA[ if(a

2.3约束

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7NmMD0sq-1627388414802)(C:\Users\30287\AppData\Roaming\Typora\typora-user-images\image-20210727105022977.png)]

约束:规定xml文档的书写规则。

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

  2. 能够在xml中引入约束文档。

  3. 能够简单的读懂约束文档。

  4. 分类

  5. DTD:一种简单的约束技术。

  6. Schema:一种复杂的约束技术。

  7. DTD

引入dtd文档到xml文档中:

  1. 内部dtd:将约束规则定义在xml文档中。

  2. 外部dtd:将约束规则定义在xml文档中。

  • 本地:<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">

  • 网络:<!DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的位置URL">

样例

<!ELEMENT students (student*) > <!ELEMENT student (name,age,sex)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT sex (#PCDATA)> <!ATTLIST student number ID #REQUIRED> <?xml version="1.0" encoding="UTF-8" ?>

  1. 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"

样例

<students xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns=“http://www.itcast.cn/xml”

xsi:schemaLocation=“http://www.itcast.cn/xml student.xsd”

xpp

256

female

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:context=“http://www.springframework.org/schema/context”

xmlns:mvc=“http://www.springframework.org/schema/mvc”

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc.xsd">

3.解析


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

  • 操作xml文档
  1. 解析(读取):将文档中的数据读取到内存中。

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

  • 解析xml的方式
  1. DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树。
  • 优点:操作方便,可以对文档进行CRUD的所有操作。

  • 缺点:占内存。

  1. 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. 获取Document对象

  3. 获取对应的标签Element对象

  4. 获取数据

示例:

public class JsoupDemo1 {

public static void main(String[] args) throws IOException {

//1.获取student.xml的path

String path = JsoupDemo1.class.getClassLoader().getResource(“student.xml”).getPath();

//2.解析xml文档,加载文档进内存,获取dom树----->Document

Document document = Jsoup.parse(new File(path), “utf-8”);

//获取元素对象Element

Elements names = document.getElementsByTag(“name”);

System.out.println(names.size());

System.out.println(names);

//获取第一个name的Element对象

Element name1 = names.get(0);

String name = name1.text();

System.out.println(name);

}

}

对象的使用

  1. Jsoup:工具类,可以解析htmlxml文档,返回Document

parse:解析html或xml文档,返回Document。

  • parse(File in, String charsetName):解析xml或html文件的。

  • parse(String html):解析xml或html字符串。

  • parse(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象。

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

获取Element对象

  • getElementById(String id):根据id属性值获取唯一的element对象。

  • getElementsByTag(String tagName):根据标签名称获取元素对象集合。

  • getElementsByAttribute(String key):根据属性名称获取元素对象集合。

  • getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合。

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

  2. Element:元素对象

  3. 获取子元素对象

  • getElementById(String id):根据id属性值获取唯一的element对象。

  • getElementsByTag(String tagName):根据标签名称获取元素对象集合。

  • getElementsByAttribute(String key):根据属性名称获取元素对象集合。

  • getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

分享

这次面试我也做了一些总结,确实还有很多要学的东西。相关面试题也做了整理,可以分享给大家,了解一下面试真题,想进大厂的或者想跳槽的小伙伴不妨好好利用时间来学习。学习的脚步一定不能停止!

薪酬缩水,“裸辞”奋战25天三面美团,交叉面却被吊打,我太难了

Spring Cloud实战

薪酬缩水,“裸辞”奋战25天三面美团,交叉面却被吊打,我太难了

Spring Boot实战

薪酬缩水,“裸辞”奋战25天三面美团,交叉面却被吊打,我太难了

面试题整理(性能优化+微服务+并发编程+开源框架+分布式)
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
03032d36.jpg" alt=“img” style=“zoom: 33%;” />

分享

这次面试我也做了一些总结,确实还有很多要学的东西。相关面试题也做了整理,可以分享给大家,了解一下面试真题,想进大厂的或者想跳槽的小伙伴不妨好好利用时间来学习。学习的脚步一定不能停止!

[外链图片转存中…(img-lFdnGflC-1711865414291)]

Spring Cloud实战

[外链图片转存中…(img-mjG6t36F-1711865414292)]

Spring Boot实战

[外链图片转存中…(img-RDFDa5QS-1711865414292)]

面试题整理(性能优化+微服务+并发编程+开源框架+分布式)
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值