我们访问网站的的时候,访问了某个路径,然后请求服务器上的资源,再出查看是否有该资源,有的话就会把这个资源相应给我们。一个虚拟路径对应一个类。为了灵活实现的不同路径执行不同的资源我们需要使用XML进行配置;为了限定XML内容,我们需要使用xml约束(DTD或schema);为了获得xml的内容,我们需要使用dom4j进行解析。
XML:称为Extensible Markup Language,意思是可扩展的标记语言。XML语法上和HTML比较相似,但HTML中的元素是固定的,而XML的标签是可以由使用者自定义。
xml文档声明必须以<?xml ?>结尾,必须在文档的第0行,第0列开始,文档声明只有属性: versioin:指定XML文档版本。必须属性,因为我们不会选择1.1,只会选择1.0; encoding:指定当前文档的编码。可选属性,默认值是utf-8。
元素element
1.元素是XML文档中最重要的组成部分,
2.普通元素的结构开始标签、元素体、结束标签组成。例如:<hello>大家好</hello>
3.元素体:元素体可以是元素,也可以是文本,例如:<b><a>你好</a ></b>
4.空元素:空元素只有开始标签,而没有结束标签,但元素必须自己闭介,例如:<c/>
5.元素命名:
a) 区分大小写
b) 不能使用空格,不能使用冒号:
c) 不建议以XML, xml, Xml开头
6.格式化良好的XML文档,必须只有一个根元素。
属性
1.属性是元素的一部分,它必须出现在元素的开始标签中
2.属性的定义格式:属性名=属性值,其中属性值必须使用单引或双引
3.一个元素可以有O ~ N个属性,但一个元素中不能出现同名属性
4.属性名不能使用空格、冒号等特殊字符,且必须以字母开头
转义字符
CDATA区
当大量的转义字符出现在xml文档中时,会使xml文档的可读性大幅度降低。这时如果使用CDATA就可以解决此类问题。
DTD
用来约束XML文档,规定XML文档中元素的名称,子元素的名称及顺序,元素的属性等。我们一般使用框架中提供的DTD约束文档,编写XML文档。
我们打开一个web-app_2_3.dtd,看一下里面的声明
定义元素语法:<!ELEMENT元素名 元素描述>
元素名:自定义
元素描述包括 : 符号和数据类型
常见符号: ? * + () | ,
常见类型:#PCDATA表示内容是文本,不能是子标签。
? 代表该对象可以出现,但是只能出现一次 * 代表该对象可以出任意次数,也可以是0次 + 该对象最少出现一次,也可以出现多次 ()用来给元素分组 | 表明列出的对象只能出现一个 , 表示该对象必须按照指定顺序出现。
我们文档约束文件复制到xml的同级目录下,将文档约束文件声明放到xml文件中去 alt +/就可以点出标签(元素)
约束分 DTD约束 (内部DTD 外部本地DTD 外部公共DTD)和 Schema约束(doctype声明写在了根标签中)
使用Schema约束 将文档约束文件复制到同级目录下 约束声明写到xml文件,再写一个结束标签即可。
我们对xml文件进行解析 解析方式常用 DOM:要求解析器把整个XML文档装载到内存,并解析成一个Document对象。解析器常用dom4j:比较常用的解析开发包,hibernate底层采用。
DOM的解析原理:XML DOM和HTML DOM类似,XML DOM将整个XML文档加载到内存,生成一个DOM树,并获得一个Document对象,通过Document对象就可以对DOM进行操作。导入dom4j.jar包,dom4j使用核心类SaxReader加载xml文档获得Document通过Document对象获得文档的根元素,然后就可以操作了。
主要使用read()加载执行xml文档 getRootelement()获得根元素 elements获得指定名称的所有子元素 getText()获得当前元素的文本内容。
主要步骤 1加载xml文档,获取整个文档对象 2获取根元素对象 3获取我们想要的元素对象 4获取元素下的子元素对象 5获取文本节点 6获取字节码文件对象 7创建该类对象调用 成员方法
原文:https://www.cnblogs.com/cactus1/p/14487303.html