JavaWeb-XML-学习笔记
程序员文章站
2022-05-08 13:15:43
...
JavaWeb-XML-学习笔记
xml
1.xml简介
xml是可扩展的标记性语言
2.xml作用
- 用来保存数据,而且这些数据具有自我描述性
- 还可以作为项目或者模块的配置文件
- 还可以作为网络传输数据的格式,目前都是json为主
3.xml语法
1.文档声明
2.元素(标签)
3.xml属性
4.xml注释
5.文本区域(cdata区)
4.第一个xml文件
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--以上是xml声明-->
<books>
<book sn="SN123123123123">
<name>时间简史</name>
<author>霍金</author>
<price>123</price>
</book>
<book sn="SN123123123124">
<name>java从入门到放弃</name>
<author>沙老师</author>
<price>993</price>
</book>
</books>
5.xml注释
同html注释
6.元素(标签)
xml文档必须有根元素
根元素就是*元素,
没有父标签的元素叫做*元素
6.1 文本区域(cdata区)
语法可以告诉xml解析器,cdata中的文本内容不需要xml解析
cdata格式:<![CDATA[ 这里可以把你输入的字符原样显示,不会解析xml ]]>
7.xml解析技术
不管是html语言还是xml语言,都可以使用w3c组织制定的dom技术进行解析、
document对象标签整个文档。
7.1.第三方的解析库:
- jdom 在 dom的基础上进行了封装
- dom4j有对jdom进行了封装
- pull主要用于android手机开发。是在sax非常类似都是事件机制解析xml文件
8.dom4j解析技术
8.1.类库的使用
- 导入dom4j.jar包
- 导入junit测试jar包
package com.atguigu.pojo;
import org.dom4j.Document;
import org.dom4j.io.SAXReader;
import org.junit.Test;
public class dom4jTest {
@Test
public void test() throws Exception {
//创建一个saxreader输入流,去读取xml文件,生成document对象
SAXReader reader = new SAXReader();
Document read = reader.read("src/books.xml");
System.out.println(read); //[email protected] [Document: name src/books.xml]
}
}
8.2.解析
/*
读取books.xml文件生成java类
*/
@Test
public void test2() throws DocumentException {
// 读取xml文件
SAXReader reader = new SAXReader();
// 在junit测试中,相对路径是从模块名开始的
Document read = reader.read("src/books.xml");
// 通过document对象获取根对象
Element rootElement = read.getRootElement();
// System.out.println(rootElement);
// 通过根元素获取标签对象,通过标签名查找
List<Element> books = rootElement.elements("book");
// 遍历每个处理每个标签转换为类
for (Element book : books) {
// asxml把标签对象转换字符串
// System.out.println(book.asXML());
Element name = book.element("name");
//getText();可以获取标签内的文本内容
String nameText = name.getText();
//直接获取指定标签名的文本内容
String priceText = book.elementText("price");
String authorText = book.elementText("author");
String sn = book.attributeValue("sn");
System.out.println(new Book(sn, nameText, authorText, new BigDecimal(priceText)));//Book{sn='SN123123123123', name='时间简史', author='霍金', price=123}
}
}
上一篇: java web中遇到的乱码问题(Get,Post)
下一篇: BaseServlet类的介绍