十八、XML、XML解析、设计模式等
XML
-
XML概述
-
XML是可扩展标记语言(eXtensible Markup Language)的缩写,它是一种数据表示格式,可以描述非常复杂的数据结构,常用于传输和存储数据
-
XML的几个特点和使用场景
-
一、纯文本,默认使用UTF-8编码;二:可嵌套
-
如果把XML内容存为文件,那么他就是一个XML文件
-
XML的使用场景:XML内容经常被当成消息进行网络传输,或者作为配置文件用于存储系统的信息
-
-
-
XML的创建、语法规则
-
XML的创建
-
就是创建一个XML类型的文件,要求文件的后缀必须使用xml,如hello_world.xml
-
-
IDEA创建XML文件的操作步骤
-
右键src、点击new、再点击file、文件名加后缀 .xml
-
-
XML的语法规则
-
XML文件的后缀名为:xml
-
文档声明必须是第一行
-
<?xml version="1.0" encoding="UTF-8"?>
-
version:XML默认的版本号码、该属性是必须存在的
-
encoding:本XML文件的编码
-
-
XML的标签(元素)规则
-
标签由一对尖括号和合法标识符组成:<name></name>,必须存在一个根标签,有且只能有一个
-
标签必须成对出现,有开始,有结束:<name></name>
-
特殊的标签可以不成对,但是必须有结束标记,如:
-
标签中可以定义属性,属性和标签名空格隔开,属性值必须用引号引起来<student id = "1"></name>
-
标签需要正确的嵌套
-
-
XML的其他组成
-
XML文件中可以定义注释信息:<!-- 注释内容 -->
-
XML文件中可以存在以下特殊字符
-
< ; < 小于
-
> ; > 大于
-
& ; & 和号
-
&apos ; ' 单引号
-
" ; " 引号
-
-
XML文件中可以存在CDATA区:<![CDATA[ …内容…]]>
-
-
-
XML文档约束方式一:DTD约束【了解】
-
什么是文档约束?
-
文档约束:是用来限定xml文件中的标签以及属性应该怎么写。以此强制约束程序员必须按照文档约束的规定来编写xml文件
-
-
DTD约束存在的问题
-
不能约束具体的数据类型
-
-
-
XML文档约束方式二:schema约束【了解】
-
schema可以约束具体的数据类型,约束能力上更强大
-
schema本身也是一个xml,本身也受到其他约束文件的要求,所以编写的更加严谨
-
XML解析技术
-
XML解析技术概述
-
就是使用程序读取XML中的数据
-
两种解析方式
-
SAX解析
-
DOM解析
-
DOM常见的解析工具
-
名称 说明 JAXP SUN公司提供的一套XML的解析的API JDOM JDOM是一个开源项目,它基于树形结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作 dom4j 是JDOM的升级品,用来读写XML文件的。具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,Hibernate也用它来读写配置文件 jsoup 功能强大DOM方式的XML解析开发包,尤其对HTML解析更加方便
-
-
-
Decument对象:整个xml文档
-
Node对象
-
Element对象:标签
-
Attribute对象:属性
-
Text对象:文本内容
-
-
-
Dom4J解析XML文件
-
Dom4j解析XML-得到Document对象
-
SAXReader类
-
构造器/方法 说明 public SAXReader() 创建Dom4J的解析器对象 Document read(String url) 加载XML文件成为Document对象 -
Document类
-
方法名 说明 Element getRootRlement() 获取根元素对象
-
-
-
Dom4J解析XML文件中的各个节点
-
Dom4j解析XML的元素、属性、文本
-
方法名 说明 List<Element> elements() 得到当前元素下所有子元素 List<Element> elements(String name) 得到当前元素下指定名字的子元素返回集合 Element element(String name) 得到当前元素下指定名字的子元素,如果有很多名字相同的返回第一个 String getName() 得到元素名字 String attributeValue(String name) 通过属性名直接得到属性值 String elementText(子元素名) 得到指定名称的子元素的文本 String getText() 得到文本
-
-
Dom4J解析XML文件-实战案例
-
xml-app.src.com.itheima.d1_dom3j.Dom4JTest2
-
XML检索技术:Xpath
-
XPath介绍
-
XPath在解析XML文档方面提供了独树一帜得的路径思想,更加优雅,高效
-
XPath使用路径表达式来定位XML文档中的元素节点或属性节点
-
Document中与Xpath相关的API:
-
方法名 说明 Node selectSingleNode("表达式") 获取符合表达式的唯一元素 List<Node> selectNode("表达式") 获取符合表达式的元素集合
-
-
-
Xpath的四大检索方案
-
xml-app.src.com.itheima.d2_xpath.XPathDemo
-
绝对路径
-
采用绝对路径获取从根节点开始逐层的查找/contactList/contact/name节点列表打印信息
-
方法名 说明 /根元素/子元素/孙元素 从根元素开始,一级一级向下查找,不能跨级
-
-
相对路径
-
全部检索
-
属性查找
-
在全文中搜索属性,或者带属性的元素
-
方法名 说明 //@属性名 查找属性对象,无论是哪个元素,只要有这个属性即可 //元素[@属性名] 查找元素对象,全文搜索指定元素名和属性名 //元素[@属性名=值] 查找元素对象,全文搜索指定元素名和属性名,并且属性值相等
-
-
设计模式:工厂模式
-
什么是工厂设计模式?
-
之前我们创建类对象时,都是使用new对象的形式创建,在很多业务场景下也提供了不直接new的方式
-
工厂模式(Factory Pattern)是Java中最常用的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种获取对象的方式。
-
-
工厂设计模式的作用:
-
工厂的方法可以封装对象的创建细节,比如:为该对象进行加工和数据注入
-
可以实现类与类之间的解耦操作(核心思想)
-
设计模式:装饰模式
-
什么是装饰设计模式?
-
创建一个新类,包装原始类,从而在新类中提升原来类的功能
-
-
装饰设计模式的作用:
-
作用:装饰模式指的是在不改变原类的基础上,动态地扩展一个类的功能
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)