XML————————————————————————————————>XML解析技术————————>XPath ———————————>设计模式 在有些业务场景下,存储数据或者传输数据给 XML文件中存储得数据 如何方便得在XML文件 开发还有一些比较常见得设计模式是需要 别人得时候,数据需要满足一定得规范进行组织。 是需要提取出来得。 中进行数据得检索? 掌握,理解设计模式有利于理解某些程序。 XML概述: XML是可扩展标记语言,它是是一种数据表示格式,可以描述非常复杂得数据结构,常用于传输和存储数据. XML的特点和使用场景 一:纯文本,默认使用UTF-8编码。二:是可嵌套; 如果把XML内容存为文件,那么它就是一个XML文件。 XML的使用场景(作用):XML内容经常被当成消息进行网络输出,或者作为配置文件用于存储系统的信息。 ————————————————————————————————————————————————————————————————————————————————————— XML的创建 就是创建一个XML类型的文件,要求文件的后缀必须使用xml,如hello-world.xml IDEA创建XML文件的操作步骤 new ——File XML的语法规则 xml文件的后缀名为:xml 文档声明必须第一行! <?xml version="1.0"encoding="UTF-8"?> version:XML默认的版本号码,该属性必须存在 encoding:本XML文件的编码 XML的标签(元素)规则 标签由一对尖括号和合法标识符组成:<namae></name>,必须存在一个根标签,有且只能有一个 标签必须成对出现,有开始,有结束:<name></name> 特殊的标签可以不成对,但是必须有结束标记,如:<br/> 标签中可以定义属性,属性和标签名空格隔开,属性值必须用引号引起来<student id="1"></name> 标签需要正确嵌套:<student> <name> </name> </student> XML的其他组成 1.XML文件中可以定义注释信息:<!-注释内容--> 2.XML文件中可以存在一下特殊字符 < < 小于 > > 大于 & & 和号 &apos ' 单引号 " " 引号 3.XML文件中可以存在CDATA区:<![CDATA[..内容..]]> ———————————————————————————————————————————————————————————————————————————————————————————— 什么是文档约束? 读取并解析 软件——————————————————————————————>xml文件 问题:由于xml文件可以自定义标签,导致xml文件可以随意定义,程序在解析的时候可能出现问题 文档约束:是用来限定xml文件中的标签以及属性应该怎么写————>以此强制约束程序员必须按照文档约束的规定来编写xml文件 文档约束的分类: DTD schema XML的文档约束-DTD的作用和问题? 可以约束XML文件的编写 问题:不能约束具体的数据类型 文档约束-schema schema可以约束具体的数据类型,约束能力更强大 schma本身也是一个xml文件,本身也受到其他约束文件的要求,所以编写的更加严谨 约束 约束 其他文件——————>schema——————————>xml XML的文档约束-schema的优点? 可以约束XML文件的标签内容格式,以及具体的数据类型 ———————————————————————————————————————————————————————————————————————————————————————— 什么是XML解析? 使用程序读取XML中的数据 两种解析方式 SAX解析(读一行解析一行) DOM解析(一次性读完) Dom常见的解析工具 名称 说明 JAXP sun公司提供的一套XML的解析的API JDOM JDOM是一个开源项目,它基于树形结构,利用纯java的技术对XNML文档实现解析,生产,序列化以及多种操作 ** dom4j 是JDOM的升级品,用来读写XML文件的,具有性能优异,功能强大和极其易使用的特点,他的性能超过sun公 司官方的dom技术,同时他也是一个开放源代码的软件,Hibernate也用它来读写配置文件 jsoup 功能强大DOM方式的XML解析开发包,尤其对HTML解析更加方便 总结: DOM解析的文档对象模型是怎样? Document对象:整个xml文档 Element对象: 标签——————————————————————> Attribute对象:属性——————————————————————> Node对象 Text对象: 文本内容——————————————————> Dom解析常用技术框架 Dom4J ———————————————————————————————————————————————————————————————————————————————————————
<?xml version="1.0" encoding="UTF-8" ?> <!--注释:根标签有且只有一个--> <student> <name>张三</name> <sex>男</sex> <hobby>打球</hobby> <info> <age>30</age> <addr>南京雨花台</addr> </info> <sql> select*from user where age < 18; select*from user where age < 18&& age>20; <![CDATA[ select*from user where age < 18; ]]> </sql> </student>