【JavaWeb】XML文件_DOM解析 (xml文件的解析) & dom解析的封装思想

本文介绍了使用DOM解析XML文件的方法,重点讲解了如何使用dom4j库进行XML文件的读取、修改和封装。内容包括获取XML节点对象、属性、文本内容的API用法,以及DOM解析的封装思想,提供了添加、修改、删除XML元素的实例。
摘要由CSDN通过智能技术生成

XML文件的第一种解析方式

DOM解析

1.工具:DOM解析使用的工具:dom4j


2.将dom4j 的jar 包导入eclipse 项目下的方法:

(1)如果是Java项目,在项目下新建一个目录lib,可以使用此目录存放额外需要导入的jar包——>右键“add to build path”,将jar包关联到项目下

(2)如果是web项目,根目录下的“webContent”——>文件夹“WEB INF”——>“lib文件夹”


3.DOM解析的原理:

(1)xml解析引擎在解析xml文件的时候,将当前的xml文件中的每一个标签都封装成了一个对象(标签对象/节点对象)——> 形成树状结构

(2)结构顺序:

Node(节点对象)

Element(标签对象)

Attribute(属性对象)

Text(文本对象)

(3)dom解析的原理图解:

3.使用dom4j工具读取xml文件的方法

dom4j工具api关于解析xml文件的源码:

public class Foo {

    public Document parse(URL url) throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = reader.read(url);
        return document;
    }
}


(1)创建解析器对象:SAXReader reader = new SAXReader();

(2)读取xml文件,获得xml文档对象:Document doc = reader.read(new File("xml文件")) ;

注:返回的对象是document对象,代表的是当前xml文件的文档信息






一、使用dom4j获取XML文件对象的方法

1.使用dom4j工具获取xml文件中的每一个标签对象(Element)

(1)获取根节点:文档对象.getRootElement();

(2)通过根节点获取第一个子节点:根节点对象.element(“标签名称”); 注:此方法默认获取第一个子节点

(3)获取所有同名的节点对象:根节点对象.elements(“标签名称”); 注:此方法返回的是一个List集合 List<Element>

(4)获取根节点下所有的节点对象:根节点对象.elements();

(5)获取根节点的孙节点对象:根节点对象.element("子节点名称").element("孙节点名称");

注意:获取节点名称的方法:getName();


练习:使用dom4j工具获取xml文件中的标签对象

import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Test1 {
	public static void main(String[] args) throws Exception{
		// 创建xml文件解析器对象SAXReader
		Document doc = new SAXReader().read(new File("./src/contact.xml"));
		
		// 获取根节点
		Element rootElement = doc.getRootElement();
		String rootName = rootElement.getName();
		System.out.println(rootName);
		System.out.println("----------------");
		
		// 获取根节点下的第一个子标签
		Element c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值