【JavaWeb】JavaWeb再学习--XML文件了解与解析

注:本文章基于尚硅谷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元素都必须有关闭标签
标签必须正确的嵌套
文档必须有根元素(即唯一的没有父标签的顶级元素)
大于号:&gt
小于号:&lt
<!CDATA>[这里可以把你输入的字符原样显示,不会解析xml]

要遵循以下的命名规则:

  1. 名称可以包含字母,数字及其他字符;
  2. 名称不能以数字或者标点符号开始;
  3. 名称不能以字符“xml“开始
  4. 名称不能包含空格

三、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相关内容的学习!!!

如果感觉内容写的还不错的话,一键三连不迷路!!!!
后面将会更新更多学习内容,一起学习吧!!!!!!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PoJo123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值