XML介绍
XML的创建
XML的语法规则
XML的作用和应用场景
解析XML文件使用框架Dom4j
使用Domj解析XML文件步骤
使用Domj解析XML文件步骤思想
使用Domj解析XML文件代码
Element提供的方法
代码:
helloworld.xml
<?xml version="1.0" encoding="utf-8" ?>
<!--注释:以上抬头声明必须放在第一行,必须有 -->
<!--根标签只能有一个 -->
<users>
<user id ="1" desc="第一个用户">
<name>张无忌</name>
<sex>男</sex>
<password>minmin</password>
<data> 3 < 2 && 5>4</data>
<data1>
<![CDATA[
3<2 && 5>4
]]>
</data1>
</user>
<people>很多人</people>
<user id ="2">
<name>敏敏</name>
<sex>女</sex>
<password>wuji</password>
</user>
</users>
XmlTest(主程序)
package com.itheima.day2_xml;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.util.List;
/*
* 目标:掌握使用Dom4j框架解析XML文件。
* */
public class XmlTest {
public static void main(String[] args) throws Exception {
//1、创建一个Dom4]框架提供的解析器对象
SAXReader reader = new SAXReader();
//2、使用saxReader对象把需要解析的XML文件读成一个Document对象。
Document document = reader.read("src\\helloworld.xml");
// 3、从文档对象中解析XML文件的全部数据了
Element root = document.getRootElement();
System.out.println(root.getName());
// 4、获取根元素下的全部一级子元素。
List<Element> elements = root.elements();
for (Element element : elements) {
System.out.println(element.getName());
}
// 5、获取当前元素下的某个子元素。
Element people = root.element("people");
System.out.println(people.getText());
//如果下面有很多子元素user,默认获取第一个
Element user = root.element("user");
System.out.println(user.elementText("name"));
//6、获取元素的属性信息呢?
System.out.println(user.attributeValue("id"));
Attribute id = user.attribute("id");
System.out.println(id.getName());
System.out.println(id.getValue());
System.out.println("=========================");
List<Attribute> attributes = user.attributes();
for (Attribute attribute : attributes) {
System.out.println(attribute.getName()+"="+attribute.getValue());
System.out.println("============================");
// 7、如何获取全部的文本内容:获取当前元素下的子元素文本值
System.out.println(user.elementText("name"));
System.out.println(user.elementText("sex"));
System.out.println(user.elementText("password"));
System.out.println("========================");
Element data = user.element("data");
System.out.println(data.getText());
System.out.println(data.getTextTrim());//取出文本去除前后空格
}
}
}