一、简介
含义:XML是可扩展的标记性语言
作用:
1、用来保存数据,而这些数据具有自我描述性
2、可以作为项目或模块的配置文件
3、作为网络传输数据的格式(现在JSON为主)
二、XML语法
2.1 文档声明
2.2 XML注释
<!-- 注释内容 -->
2.3 元素(标签)
XML元素是从开始标签到结束标签的部分
2.4 XML属性
必须用引号引起来
2.5 语法规则
2.5.1 所有的XML元素都需闭合
2.5.2 大小写不敏感
2.5.3 正确的嵌套
2.5.4 文档必须有根标签,且只有一个
2.5.5 属性值需加引号
2.5.6 特殊字符的替代
2.5.7 文本区域(CDATA区)
CDATA格式:
<![CDATA[这里显示字符原样,不会被解析 ] ]>
三、使用dom4j解析xml
package com.atguigu.pojo;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;
import java.util.List;
public class Dom4jTest {
@Test
public void test1() throws Exception {
//创建一个SAXReader
SAXReader saxReader=new SAXReader();
Document document = saxReader.read("src/books.xml");
System.out.println(document);
}
//读取books.xml文件转换成book类
@Test
public void test02() throws Exception {
//读取books.xml文件
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){
Element nameElement = book.element("name");
/*asXML()把标签对象转换为标签字符串
System.out.println(nameElement.asXML());
*/
//getText()可以获取标签中的文本内容
String nameText = nameElement.getText();
//直接获取指定标签名的文本内容
String price = book.elementText("price");
String author = book.elementText("author");
String sn = book.attributeValue("sn");
System.out.println(new Book(sn,nameText,Double.parseDouble(price),author));
}
}
}