第十五节:第三部分:特殊文件:XML概述、解析
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());//取出文本去除前后空格}}
}