曲阜做网站哪家好/百度新闻排行榜
目录
一、XML(可拓展标记语言)
1.学习网站:
2.作用
3.XML标签
4.XML语法
5.解析XML
(1)常见解析思想DOM
6.常见的解析工具
7.DOM4j的使用
8.文档约束
(1)概述
(2)分类
(3)DTD约束
(4)引入DTD约束
(5)DTD语法
①定义元素
②定义属性
(6)schema约束
①定义元素
②定义属性
(7)引入schema约束
(8)schema和DTD约束的区别
一、XML(可拓展标记语言)
1.学习网站:
https://www.w3schoo1.com.cn
-
标记语言:通过标签来描述数据的一门语言(标签有时我们也将其称之为元素)
-
可扩展:标签的名字是可以自定义的
2.作用
-
用于进行存储数据和传输数据
-
作为软件的配置文件
3.XML标签
-
标签由一对尖括号和合法标识符组成 < user >
-
标签必须成对出现< user >< user/>
-
特殊的标签可以不成对,但是必须有结束标记< user/ >
-
标签中可以定义属性,属性和标签名空格隔开属性值必须用引号(单/双)引起来< user id = "100"/>
-
标签需要正确的嵌套
4.XML语法
-
后缀名为.xml
-
文档声明必须是第一行第一列
<?xmlversion="1.0”encoding="UTF-8" standalone= “yes”?> 其中 version属性必须存在 encoding属性不是必须的,作用:打开当前xml文件的时候应该是使用什么字符编码表(默认都是UTF-8) standalone属性不是必须的,作用:描述XML文件是否依赖其他的xml文件,取值为yes/no
-
必须存在根标签
-
XML文件中可以定义注释信息
-
XML文件中可以存在以下特殊字符
<-----------------小于 >-----------------大于 &----------------和号(&) '---------------单引号 "---------------引号
-
XML可以存在CDATA区
<![CDATA[ ...内容...]]>
5.解析XML
(1)常见解析思想DOM
-
DOM(DocumentObject Model)文档对象模型:
就是把文档的各个组成部分看做成对应的对象,会把xmI文件全部加载到内存在内存中形成一个树形结构,再获取对应的值
其中DOM对象主要有以下部分
-
Document对象:整个xml文档
-
Element对象:所有标签
-
Attribute对象:所有属性
-
Text对象:所有文本内容
其中Element,Attribute,Text有一个共同的父类:Node对象
6.常见的解析工具
-
JAXP:SUN公司提供的一套XML的解析的API
-
JDOM:开源组织提供了一套XML的解析的API-jdom
-
DOM4J:开源组织提供了一套XML的解析的API-dom4j
-
pull :主要应用在Android手机端解析XML
7.DOM4j的使用
首先下载jar包
xml文件
<?xml version="1.0" encoding="utf-8" ?>
<books><book id="1"><name>语文</name><versions>人教版</versions></book><book id="2"><name>数学</name><versions>人教版</versions></book><book id="3"><name>数学</name><versions>苏教版</versions></book><user id="1"><name>小明</name><studentID>1235354</studentID></user>
</books>
需求:
-
解析这个xmI文件
-
将解析到的Book标签数据封装到Book对象中并将其存储到ArrayList集合中
-
遍历集合
解析类:
public class Analysis {
public Document parseUrl(String url) throws DocumentException {SAXReader reader = new SAXReader();return reader.read(url);}public Document parseUrl(File file) throws DocumentException {SAXReader reader = new SAXReader();return reader.read(file);}
}
Book类
public class Book {private String name;private String version;private Long id;
public Book() {}
public Book(String name, String version, Long id) {this.name = name;this.version = version;this.id = id;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public String getVersion() {return version;}
public void setVersion(String version) {this.version = version;}
public Long getId() {return id;}
public void setId(Long id) {this.id = id;}
@Overridepublic String toString() {return "Book{" +"name='" + name + '\'' +", version='" + version + '\'' +", id=" + id +'}';}
}
测试类
public class Application {public static void main(String[] args) throws DocumentException {
File file = new File("reflection\\src\\xml\\bookstores.xml");Analysis analysis = new Analysis();Document document = analysis.parseUrl(file);
//获取根标签Element rootElement = document.getRootElement();//通过根标签获取book标签//无参elements()获取所有子标签List<Element> elements = rootElement.elements();System.out.println(elements.size());elements.forEach(book -> {System.out.println(book.getName());});
//有参elements(标签名)可以获取所有的指定子标签List<Element> books = rootElement.elements("book");System.out.println(books.size());
books.forEach(book -> {System.out.println("=====================================");//获取属性对应的属性值System.out.println(book.attribute("id").getValue());//获取该标签下的子标签book.elements("name").forEach(name -> {//获取标签体的内容System.out.println(name.getText());});
book.elements("version").forEach(v -> {//获取标签体的内容System.out.println(v.getText());});});System.out.println("------------------------------------");
//准备封装ArrayList<Book> bookArrayList = new ArrayList<>();books.forEach(book -> {Book book1 = new Book(book.element("name").getText(),book.element("version").getText(),Long.valueOf(book.attribute("id").getValue()));System.out.println(book1);bookArrayList.add(book1);});//最后检查"System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++");bookArrayList.forEach(book -> System.out.println(book.toString()));
}
}
8.文档约束
(1)概述
用来限定xml文件中可使用的标签以及属性
(2)分类
-
DTD
-
schema
(3)DTD约束
-
创建一个文件,后缀名为.dtd
-
看xml文件中使用了哪些元素(<!ELEMENT>可以定义元素)
-
判断元素是简单元素还是复杂元素
-
简单元素:没有子元素
-
复杂元素:有子元素的
-
xml文件:下面的约束文档的xml内容
<?xml version="1.0" encoding="utf-8" ?>
<books><book id="1"><name>语文</name><versions>人教版</versions></book><book id="2"><name>数学</name><versions>人教版</versions></book><book id="3"><name>数学</name><versions>苏教版</versions></book>
</books>
需要掌握:
-
能在xml文件中引入dtd约束文档
-
能够简单阅读约束文档
-
能根据约束文档写xml文件
(4)引入DTD约束
方式一:引入本地dtd
<?xml version="1.0" encoding="utf-8" ?>
<!--在xml文件中的第二行写入 <!DOCTYPE 根标签名字 SYSTEM(表示引入本地DTD) ‘DTD文件路径’>-->
<!DOCTYPE books SYSTEM 'restrain.dtd'>
方式二:在xml文件内部引入
<?xml version="1.0" encoding="utf-8" ?>
<!--在xml文件中的第二行写入 <!DOCTYPE 根标签名字 [](表示内部引入dtd,[]内写约束内容)>-->
<!DOCTYPE books [] >
方式三:引入网络dtd
<?xml version="1.0" encoding="utf-8" ?>
<!--在xml文件中的第二行写入 <!DOCTYPE 根标签名字 PUBLIC(表示引入网络DTD) “dtd文件名” “dtd文档的url”>-->
<!DOCTYPE books PUBLIC “dtd文件名” “dtd文档的url”>
(5)DTD语法
①定义元素
<!ELEMENT元素名 元素类型>
-
简单元素
-
EMPTY:表示标签体为空
-
ANY:表示标签体可以为空也可以不为空
-
PCDATA:表示该元素的内容部分为字符串
-
-
复杂元素
-
直接写子元素名称。
-
多个子元素可以使用”,“或者 ”|" 隔开;
-
” , ":表示定义子元素的顺序
-
”|”: 表示子元素只能出现任意一个
-
"?“:零次或一次
-
” + ":一次或多次
-
" * ":零次或多次;
-
如果不写则表示出现一次
-
-
-
②定义属性
<!ATTLIST 元素名称 属性名称 属性的类型 属性的约束>
-
属性的类型
-
CDATA类型:普通的字符串
-
-
属性的约束:
-
#REQUIRED:属性是必须的
-
#IMPLIED:属性不是必需的
-
#FIXED value:属性值是固定的value值
-
DTD约束文件
<!--复杂元素-->
<!ELEMENT books (book+)>
<!ELEMENT book (name,version)>
<!--简单元素-->
<!ELEMENT name (#PCDATA)>
<!ELEMENT version (#PCDATA)>
<!--定义属性-->
<!ATTLIST book id #PCDATA #IMPLIED>
(6)schema约束
①定义元素
-
创建一个文件,后缀名为.xsd
-
定义文档声明
-
schema文件的根标签为:< schema>
-
在< schema>中定义属性:xmIns=XML Schema
-
在根标签中定义属性:targetNamespace =唯一的url地址,用来指定当前这个schema文件的名称空间
-
在根标签定义属性:elementFormDefault="qualified,表示当前schema文件是一个质量良好的文件
-
通过element定义元素
-
判断当前元素是简单元素还是复杂元素
②定义属性
属性名 属性类型 属性的约束【required(必须的),optional(可选的)】
<attribute name="id" type="string"use="required"></attribute>
(7)引入schema约束
-
在根标签定义属性:xmIns="http://www.w3.org/2001/XMLSchema-instance
-
通过xmIns引入约束文件的名称空间
-
给某一个xmins属性添加一个标识,用于区分不同的名称空间,格式为:xmins:标识=“名称空间地址”,标识可以是任意的,但是一般取值都是xsi
-
通过xsi:schemaLocation指定名称空间所对应的约束文件,路径格式为:父 si:schemaLocation ="名称空间url 文件路径“
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="www.book_schema.cn"xsi:shemaLocation="www.book_shema.cn book_shema.xad"
>
根据上面xml写一个xsd文件
<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"targetNamespace="www.book_schema.cn"elementFormDefault="qualified">
<!-- element name = "根标签名"--><element name="books">
<!-- complexType表示当前标签是复杂的元素--><complexType><sequence>
<!-- 定义book复杂元素,maxOccurs:该标签最多出现的次数,unbounded是无限制--><element name="book" maxOccurs="unbounded"><complexType><sequence>
<!-- 定义简单元素--><element name="name" type="string"/><element name="version" type="string"/></sequence><attribute name="id" type="string" use="required"></attribute></complexType>
</element>
</sequence>
</complexType></element>
</schema>
(8)schema和DTD约束的区别
-
schema约束文件也是一个xml文件,符合xm的语法,这个文件的后缀名.xsd
-
一个xml中可以引用多个schema约束文件,多个schema使用名称空间区分(名称空间类似于java包名)
-
dtd里面元素类型的取值比较单一常见的是PCDATA类型,但是在schema里面可以支持很多个数据类型
-
schema语法更加的复杂
相关文章:

Java基础进阶02-xml
目录 一、XML(可拓展标记语言) 1.学习网站: 2.作用 3.XML标签 4.XML语法 5.解析XML (1)常见解析思想DOM 6.常见的解析工具 7.DOM4j的使用 8.文档约束 (1)概述 (2…...

《开始使用PyQT》 第01章 PyQT入门 03 用户界面介绍
03 用户界面介绍 《开始使用PyQT》 第01章 PyQT入门 03 用户界面介绍 The user interface (UI) has become a key part of our everyday lives, becoming the intermediary between us and our ever-growing number of machines. A UI is designed to facilitate in human-co…...

HTML-列表
列表 abbr: li : list item ol : orderd list ul : unordered list dl : definition list dt : definition title dd : definition description 1.有序列表(order list) 概念:有顺序或侧重顺序的列表 <h2>要把大象放冰箱总共分几步</h2> &…...

OceanBase创建租户
租户是集群之上的递进概念,OceanBase 数据库采用了多租户架构。 集群偏部署层面的物理概念,是 Zone 和节点的集合,租户则偏向于资源层面的逻辑概念,是在物理节点上划分的资源单元,可以指定其资源规格,包括…...

Java中Integer(127)==Integer(127)为True,Integer(128)==Integer(128)却为False,这是为什么?
文章目录 1.前言2. 源码解析3.总结 1.前言 相信大家职业生涯中或多或少的碰到过Java比较变态的笔试题,下面这道题目大家应该不陌生: Integer i 127; Integer j 127;Integer m 128; Integer n 128;System.out.println(i j); // 输出为 true System.o…...

【Unity】粒子贴图异常白边问题
从PS制作的黑底,白光的贴图。放入Unity粒子中,拉远看会有很严重的白边,像马赛克一样。 材质使用:Mobile/Particles/Additive 经测试只使用一张黑色的图片,也会有白边。 解决方案: 关闭黑色底…...

bxCAN接收处理
接收处理 为了接收 CAN 消息,提供了构成 FIFO(First Input First Output) 的三个邮箱。为了节约 CPU 负载,简化软件并保证数据一致性,FIFO 完全由硬件进行管理。应用程序通过 FIFO 输出邮箱访问 FIFO 中所存储的消息。 有效消息 当消息依据…...

前端面试题-(浏览器内核,CSS选择器优先级,盒子模型,CSS硬件加速,CSS扩展)
前端面试题-(浏览器内核,CSS选择器优先级,盒子模型,CSS硬件加速,CSS扩展) 常见的浏览器内核CSS选择器优先级盒子模型CSS硬件加速CSS扩展 常见的浏览器内核 内核描述Trident(IE内核)主要用在window系统中的IE浏览器中&…...

WEB前端标签的使用
图片标签 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><!-- img标签就是用来将图片显示在页面上的标签 --><img src"图片路径"><!-- 可用路径&#…...

739. 每日温度
提示给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例 1: 输入: tempe…...

stm32F103C8T6简介及标准库和HAL库的区别
什么是单片机 单片机是一种集成电路芯片,把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换电路、A\D转换器等电路)集成到一…...

操作系统(3)---操作系统引导
在安装操作系统后,磁盘的分布如下: C盘是这个磁盘的活动分区(又称主分区),安装了操作系统 开机过程如下: 1.计算机的主存由RAM和ROM组成,RAM关机数据消失,而ROM(Basic In…...

Vue3+Ts:实现paypal按钮
Vue3Ts:实现paypal按钮 一、前端页面按钮实现第一步:下载paypal.js依赖第二步:引入要使用的vue页面,并调用。 二、实现逻辑研究第一点:了解下Buttons自带的style属性第二点:了解下Buttons自带的处理方法第三…...

.[Decipher@mailfence.com].faust 勒索病毒数据怎么处理|数据解密恢复
尊敬的读者: 随着网络技术的发展,勒索病毒已经成为数字时代中一种极具破坏性的威胁。[support2022cock.li].faust [tsai.shenmailfence.com].faust [Encrypteddmailfence.com].faust[Deciphermailfence.com].faust 勒索病毒是其中的一种,它以…...

【UE Niagara】制作星光飘落效果
效果 步骤 1. 新建一个Niagara系统 选择模板“Fountain” 这里命名为“NS_Flare” 打开“NS_Flare”,选中Sprite渲染器,设置材质为上一篇文章中(【UE 材质】闪烁的星星材质)制作的材质“M_Flare” 2. 由于要在Niagara中调整粒子的…...

SLAM初学
昨天组长布置了任务,要求看香港大学的一篇论文,一打开,好家伙,纯英文,直接翻译着看 几个读不懂的概念: 体素:体素是三维空间中的体积像素的简称。它类似于二维图像中的像素,但在三…...

腾讯云轻量应用服务器Docker如何一键搭建属于自己的幻兽帕鲁服务器?
幻兽帕鲁/Palworld是一款2024年Pocketpair开发的开放世界生存制作游戏,在帕鲁的世界,玩家可以选择与神奇的生物“帕鲁”一同享受悠闲的生活,也可以投身于与偷猎者进行生死搏斗的冒险。而帕鲁可以进行战斗、繁殖、协助玩家做农活,也…...

win10+elasticsearch8.12 安装教程
Elasticsearch是一种搜索引擎,本地安装完成之后,可使用其他编程语言(例如python)与elasticsearch建立连接,然后使用python脚本搜索elasticsearch中的数据 1下载 elasticsearch elasticsearch最新版官网下载链接 点击…...

经典面试题-死锁
目录 1.什么是死锁? 2.形成死锁的四个必要条件 3.死锁的三种情况 第一种情况: 举例: 举例: 第二种情况:两个线程 两把锁 举例: 第三种情况:N个线程 M把锁 哲学家进餐问题 1.什么是死锁&…...

mysql面试题合集-基础
前言 工作很忙,本质还是自己比较懒惰,很久没更新博客了。近期打算面试,换个工作环境,那就先从面试题开始吧,后续也会逐渐更新自己在工作中的一些经验感悟。接下来切入主题,由于长期做前台开发工作…...

点灯大师(STM32)
这段代码是用于STM32F10x系列微控制器的C语言程序,目的是初始化GPIOC的Pin 13为输出,并设置其输出高电平。以下是对代码的逐行解释: #include "stm32f10x.h" 这一行引入了STM32F10x设备的头文件,包含了用于STM32F10x系…...

@EnableEurekaServer
定义:EnableEurekaServer注解是Spring Cloud中的一个注解,用于将Spring Boot应用程序指定为Eureka服务器。 Eureka服务器是一个服务注册中心,也被称为发现服务器,管理和协调微服务。保存有关所有客户端服务应用程序的信息。 每个…...

Java中的接口
六. 接口 特性1 - 解决单继承 语法如下 interface A {public default void a() {} }interface B {public default void b() {} }// C 从 A, B 两个接口重用方法 a() 和 b() class C implements A, B {}解决之前的问题 public class TestInterface1 {public static void mai…...

Linux笔记之bash脚本中的-e、和
Linux笔记之bash脚本中的-e、&和&& code review! 文章目录 Linux笔记之bash脚本中的-e、&和&&1.&和&&2.-e 1.&和&& 在Linux bash脚本中,&符号有几个不同的用途,这里列举了一些常见的情况…...

mapstruct自定义转换,怎样将String转化为List
源码:https://gitee.com/cao_wen_bin/test 最近在公司遇到了这样一个为题,前端传过来的是一个List<Manager>,往数据库中保存到时候是String,这个String使用谷歌的json转化器。 当查询的时候在将这个数据库中String的数据以List<Mana…...

torch.matmul和torch.bmm区别
torch.matmul可用于4维数组的相乘,而torch.bmm只能用户3维数组的相乘,以/home/tiger/.local/lib/python3.9/site-packages/transformers/models/vit/modeling_vit.py中的ViTSelfAttention实现为例,在transpose_for_scores之前的shape是(batch…...

k8s学习(RKE+k8s+rancher2.x)成长系列之概念介绍(一)
一、前言 本文使用国内大多数中小型企业使用的RKE搭建K8s并拉起高可用Rancher2.x的搭建方式,以相关技术概念为起点,实际环境搭建,程序部署为终点,从0到1的实操演示的学习方式,一步一步,保姆级的方式学习k8…...

PHP - Yii2 异步队列
1. 前言使用场景 在 PHP Yii2 中,队列是一种特殊的数据结构,用于处理和管理后台任务。队列允许我们将耗时的任务(如发送电子邮件、push通知等)放入队列中,然后在后台异步执行。这样可以避免在处理大量请求时阻塞主应用…...

leetcode560和为k的子数组
class Solution { public:int subarraySum(vector<int>& nums, int k) {unordered_map<int,int>mp;mp[0]1;int count0,pre0;for(auto& x:nums){prex;if(mp.find(pre-k)!mp.end()){countmp[pre-k];}mp[pre];}return count;} }; 一个超级好的思路࿰…...

【ProtoBuf】使用指南
一.什么是ProtoBuf 特点:ProtoBuf是用于序列化和反序列化的一种方法,类似xml和json,但是效率更高,体积更小。ProtoBuf具有语⾔⽆关、平台⽆关,扩展性、兼容性好等特点。 ProtoBuf是需要依赖通过编译生成的头文件和源…...