1.xml
1.xml的创建以及文档声明
创建方式1:
直接创建一个File文件,取名为xxx.xml
创建方式2:
在IDEA中配置模板:
setting-->搜索template-->new-->添加xml模板
文档声明的第一行为:
<?xml version="1.0" encoding="utf-8"?>
2.xml文档的注释
<!--
注释内容
-->
快捷键为:ctrl+/
3.xml的组成与注意事项
1.xml的组成部分:
(1)元素(标签) element
(2)属性 attribute
2.xml的格式
(1)<标签名>标签体</标签名> 闭合标签
<表签名/> 自闭合标签
(2)<标签名>
<子标签名>子标签题</子标签名>
</标签名>
标签中套标签
3.注意事项
a.标签名区分大小写
b.标签中不能有空格
c.不建议以XML Xml xml开头,不建议以数字开头
d.一个良好的xml文档,都会有一个根标签
4.转义字符
常用的是需要记住:
< 转义为 <
> 转义为 >
5.文档约束(了解)
(1) dtd
扩展名为:dtd
#PCDATE:表示标签体中应为文本
#CDATE:表示标签中的属性的指应为字符型
#REQUIRED:表示属性必须设置
(2) Schema
扩展名为:xsd
文本本身为文档:W3C-----约束---->Schema----约束---->自己的文档
2.dom4j解析xml
使用DOM思想,读取xml文件
介绍dom4j 核心类
1: SAXReader DOM解析思想的核心类
方法: read(绑定了这个xml文件的输入流) 读取xml文件
返回文档对象,返回值是Document对象
2: Document对象
方法: getRootElement()获取文档的根标签
返回值,返回的是标签对象 Element
3:Element标签对象
方法获取子标签 List<Element> elements()
返回所有的子标签集合List
方法 String attributeValue(String 属性名) 获取属性值
方法 String getText() 获取到的是,标签体的文本部分
---------------------------xml文档------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<books>
<book bookName="《架构师成长之路》" press="清华计算机(1)部" date="2010-6-6" price="125.00"></book>
<book bookName="《JavaEE企业级开发》" press="清华计算机(2)部" date="2011-5-5" price="115.00"></book>
<book bookName="《Oracle指南》" press="清华计算机(3)部" date="2012-7-7" price="89.00"></book>
</books>
-------------------------测试类-------------------------------------------
public class Test02 {
public static void main(String[] args) throws Exception{
//获取类的反射然后再使用获得的反射进行获取流对象
InputStream in = Test02.class.getClassLoader().getResourceAsStream("books.xml");
//创建一个SAXReader对象,然后进行读取xml文件
SAXReader saxReader = new SAXReader();
//使用SAXReader的读取功能,进行读xml的流
Document document = saxReader.read(in);
//使用Document对象获取根标签
Element rootElement = document.getRootElement();
//使用根标签获取子标签,返回一个泛型为Element的List集合
List<Element> list = rootElement.elements();
//遍历集合
for (Element element : list) {
String bookName = element.attributeValue("bookName");
String press = element.attributeValue("press");
String date = element.attributeValue("date");
String price = element.attributeValue("price");
System.out.println(bookName+"..."+press+"..."+date+"..."+price);
}
}
}
--------------------------输出结果-------------------------------
《架构师成长之路》...清华计算机(1)部...2010-6-6...125.00
《JavaEE企业级开发》...清华计算机(2)部...2011-5-5...115.00
《Oracle指南》...清华计算机(3)部...2012-7-7...89.00