注:本文章基于尚硅谷JavaWeb相关视频及资料进行编写,代码简单,较容易理解,若有问题或者源码资料获取可以在评论区留言或者联系作者!
导引
一、xml初解
xml:可扩展的标记语言
标签可自定义
作用:
- 用来保存数据,请而且这些数据具有自我描述性
- 可以作为项目或者模块的配置文件
- 可以作为网络传输数据的格式(不过现在以json为主)
xml文件示例:
<?xml version="1.0" encoding="utf-8"?>
<softCompany>
<company>MicroSoft</company>
<company>google</company>
<company>Apple</company>
<company>百度</company>
</softCompany>
version="1.0"表示xml的版本
encoding="utf-8"表示xml文件本身的编码
下面的标签属性可以自定义
二、xml文件语法
xml标签属性与html标签属性类似:
格式:<标签名>封装的数据</标签名>
单标签:<标签名/>
双标签:<标签名></标签名>
标签大小写不敏感
标签要有属性
标签要闭合
注释:<!-- 注释内容 --!>
元素(element):从开始标签到结束标签的内容
所有xml元素都必须有关闭标签
标签必须正确的嵌套
文档必须有根元素(即唯一的没有父标签的顶级元素)
大于号:>
小于号:<
<!CDATA>[这里可以把你输入的字符原样显示,不会解析xml]
要遵循以下的命名规则:
- 名称可以包含字母,数字及其他字符;
- 名称不能以数字或者标点符号开始;
- 名称不能以字符“xml“开始
- 名称不能包含空格
三、xml文件的解析技术(dom4j)
不管是html文件还是xml文件它们都是标记型语言,都可以使用W3C组织定制的dom技术来解析,解析为一个doucument对象;
最早的两种解析技术DOM和Sax(过时)
DOM:创建大量的dom对象;
Sax:一行一行的读取xml文件进行解析的,不会创建大量的dom对象,所以在解析xml的时候,在内存的使用上和性能上,会优于Dom解析
第三方的解析:
jdom:在dom的基础上进行了封装;
dom4j
:又对jdom进行了封装;
pull:主要用在Android手机开发,是在跟sax非常类似都是事件机制解析xml文件;
dom4j使用:
(1)根据当前的java版本选择下载dom4j相应的jar包(这里选择的是java8以上的版本)
https://dom4j.github.io/
(2)新增一个books.xml文件
<?xml version="1.0" encoding="utf-8"?>
<books>
<book sn="SN12341232">
<name>辟邪剑谱</name>
<price>9.9</price>
<author>班主任</author>
</book>
<book sn="SN12341231">
<name>葵花宝典</name>
<price>99.99</price>
<author>班长</author>
</book>
</books>
(3)创建一个book.java类,与xml文件一一对应:
public class Book{
private String sn;
private String name;
private BigDecimal price;
private String author;
//省略构造方法和getter/setter方法
}
(4)将jar包添加到类路径;
先创建一个lib文件夹,将jar包拷贝到该lib文件夹中,然后添加到类路径;
(5)编写测试文件,在测试文件中解析xml文件:
public void test(){
//创建一个SAXReader 输入流,去读取xml配置文件,生成Document对象
SAXReader reader = new SAXReader();
Document document = reader.read(”src/books.xml“);
System.out.println(document) ;
}
若程序能够成功运行并输出以上类似结果,则证明解析成功;
(6)编写测试文件,将book标签转换为book类:
public void test() throws Exceptions{
SAXReader reader = new SAXReader();
Document document = reader.read(”src/books.xml“);
//通过document对象获取根元素
Element rootElement =document.getRootElement();
//通过根元素获取book标签对象
List<Element> books=rootElement.elements("book")
//遍历,处理每一个book标签转换为book类
for (Element book:books){
//asXML()把标签对象转换为标签字符串
Element nameElement=book.element("name");
//getText();可以获取标签中的文本内容
String nemeText =nameElement.getText();
//也可以使用elementText来一次性获取指定标签的文字内容
String price Text=book.elementText("price");
String authorText =book.elementText("author");
//获取标签属性内容
String snValue=book.sttributeValue("sn")
new Book(snValue,nameText,Double,parseDouble(price))
}
运行结果如下:
说明成功绑定;
总结
以上就是xml文件的学习总结,xml文件是spring学习中一个重要的内容,也是很
多组件的配置文件常用的文件格式,对后面的学习有很重要的作用;接下来将会更
新javaweb的Tomcat相关内容的学习!!!
如果感觉内容写的还不错的话,一键三连不迷路!!!!
后面将会更新更多学习内容,一起学习吧!!!!!!