1.什么是 xml
xml 是可扩展的标记性语言
2.xml 的作用?
xml 的主要作用有:
1、用来保存数据,而且这些数据具有自我描述性
2、它还可以做为项目或者模块的配置文件
3、还可以做为网络传输数据的格式(现在 JSON 为主)
3.xml语法
- 文档声明。
- 元素(标签)
- xml 属性
- xml 注释
- 文本区域(CDATA 区)
3.1.文档声明
1创建一个xml文档
file—books.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- xml 声明 version 是版本的意思 encoding 是编码
而且这个<?xml 要连在一起写,否则会有报错-->
<books>
<book id="123">
<name>java编程思想</name>
<author>华仔</author>
<price>9.9</price>
</book>
<book id="124">
<name>葵花宝典</name>
<author>班长</author>
<price>5.5</price>
</book>
</books>
2.注释:与html一样
3.元素(标签)
格式:<标签名>封装的数据</标签名>
单标签: <标签名 /> <br />
换行 <hr />
水平线
双标签 <标签名>封装的数据</标签名>
标签名大小写不敏感
标签有属性,有基本属性和事件属性
标签要闭合(不闭合 ,html 中不报错。但我们要养成良好的书写习惯。闭合)
2 )XML 命名规则
XML 元素必须遵循以下命名规则:
2.1)名称可以含字母、数字以及其他的字符
2.2)名称不能以数字或者标点符号开始
2.3)名称不能以字符 “xml”(或者 XML、Xml)开始 (它是可以的,不推荐)
2.4)名称不能包含空格
3 )xml 也 中的元素(标签)也 成 分成 单标签和双标签:
单标签
格式: <标签名 属性=”值” 属性=”值” … />
双标签
格式:< 标签名 属性=”值” 属性=”值” …>文本数据或子标签</标签名>
3.4 .xml属性
xml 的标签属性和 html 的标签属性是非常类似的, 属性可以提供元素的额外信息
在标签上可以书写属性:
一个标签上可以书写多个属性。用 每个属性的值必须使用 号 引号 引起来。
的规则和标签的书写规则一致。
- 属性必须使用引号引起来,不引会报错示例代码
3.5.语法规则:
3.5.1所有XML元素都须有关闭标签
3.5.2 XML 标签对大小写敏感
3.5.3 XML 必须正确地嵌套
3.5.4 XML 文档必须有根元素(books)
根元素就是顶级元素,
没有父标签的元素,叫顶级元素。
根元素是没有父标签的顶级元素,而且是唯一一个才行
3.5.5 XML 的属性值须加引号
3.5.6 XML 中的特殊字符
<: <
>: >
3.5.7 文本区域(CDATA 区)
CDATA 语法可以告诉 xml 解析器,我 CDATA 里的文本内容,只是纯文本,不需要 xml 语法解析
CDATA 格式:
2 .xml 解析技术介绍
不管是 html 文件还是 xml 文件它们都是标记型文档,都可以使用 w3c 组织制定的 dom 技术来解析
3.dom4j 解析技术(主要使用)*
3.1
:解析
public class parserbooks {
@Test
public void test1() throws DocumentException {
SAXReader saxReader = new SAXReader();
Document read = saxReader.read("books.xml");
System.out.println(read);
}
}
遍历并存储到类中
@Test
public void test2() throws DocumentException {
SAXReader saxReader = new SAXReader();
Document read = saxReader.read(“books.xml”);
//得到根元素
Element rootElement = read.getRootElement();
//打印测试
rootElement.asXML();
//将当前元素转换为String对象
//System.out.println(rootElement.asXML());
Element.elements(标签名)它可以拿到当前元素下的指定的子元素的集合
//通过根元素获得所有book标签对象
List<Element> book1 = rootElement.elements("book");
//遍历每一个book
for (Element book : book1){
Element name = book.element("name");
//Element author = book.element("author");
//Element price = book.element("price");
//还可以直接获取文本
String author = book.elementText("author");
String price = book.elementText("price");
BookTest bookTest = new BookTest(name.getText(), author, Double.parseDouble(price));
System.out.println(bookTest);
//System.out.println("name" + name.getText() + "author" + author.getText() + "price" + price.getText());
}
}