XML语法与解析
一、概念
XML是一种通用的数据交换格式
二、语法
1.必需有声明,声明必需在第一行
<?xml version="1.0" encoding="UTF-8"?>2.必须有且仅有一个根标签
3.有开始必需有结束
4.不允许交叉嵌套
5.属性必需有值,值必需用引号引起来
6.同一个标签中属性名不能相同,但是一个标签可以有多个同名的子标签
7.对于一些特殊字符,若要在元素主体内容中显示必须进行转义
8.CDATA区把标签当做普通文本内容
<![CDATA[数据内容]]>三、XML约束
根据自己的要求规范我们的xml标签
1.dtd约束
2.Schema约束
四、DOM模型(掌握)
D:Document XML文档
O:Object Java对象
M: Model 模型
对象
1.Node(节点)
2.Element (元素)
3.Attribute(属性)
4.Text(文本)
一切皆节点:所有的对象都是Node对象
五、使用Dom4J进行解析
XPATH查看API
(一)拿到Document对象
File file = new File("F:/eclipseWorkSpace/Day25-XML/Persons.xml");
@Test
public void testName() throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read(file);
(二)拿到一个节点的文本
//通过文档获得根节点
Element root = document.getRootElement();
//通过根节点拿到子节点
List elements = root.elements();
(三)修改一个元素
Element persons = document.getRootElement();
Element person = persons.element("Person");
//拿到第二个根节点
person.setAttributeValue("id", "2");
//拿到name元素修改元素
person.element("name").setText("王瘸子");
//拿到age元素修改元素
person.element("age").setText("18");
(四)添加一个元素
Element root = document.getRootElement();
Element person = root.addElement("person");
//拿到第三个根节点添加元素
person.setAttributeValue("id", "3");
person.addElement("name").setText("武大郎");
person.addElement("age").setText("18");
(五)删除一个指定元素
Element root = document.getRootElement();
Node pson4 = root.selectSingleNode("/Persons/person[last()]");
root.remove(pson3);
(六)获取id属性
//获得person id属性
Attribute attribute = person.attribute("id");
(七)关流
XMLWriter writer = new XMLWriter(new FileWriter( file ));
writer.write( document );
writer.close()