XML解析

SpotBugs使用 spotbugs命令行参数解析 阅读详情

XML解析

Java自带的解析XML通常有两种方式:DOM和SAX。假如这儿有一个person.xml文档。

person.xml

<?xml version="1.0" encoding="UTF-8"?>
<code>
	<person id="1">
		<name>张三</name>
		<age>18</age>
		<sex>男</sex>
		<tel>18335161111</tel>
	</person>
	
	<person id="2">
		<name>李四</name>
		<age>20</age>
		<sex>男</sex>
		<tel>18335168888</tel>
	</person>
</code>

1. DOM解析XML

DOM:Document Object Model(文档对象模型),定义了访问和操作文档的标准方法。DOM定义了一组Java接口,基于对象,与语言和平台无关将XML文档表示为树,在内存中解析和存储XML文档,允许随机访问文档的不同部分。

DOM解析的特点:

整个文档都加载进内存(占内存),灵活性好,API简单,以树形结构存储。

使用DOM解析person.xml

Person.java

package com.oner.wv;

public class Person {
	private String id;
	private String name;
	private int age;
	private String sex;
	private String tel;

	public Person() {
		super();
	}

	public Person(String id, String name, int age, String sex, String tel) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.tel = tel;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel;
	}

	@Override
	public String toString() {
		return "Person [id=" + id + ", name=" + name + ", age=" + age
				+ ", sex=" + sex + ", tel=" + tel + "]";
	}
	
}

DomDemo.java

package com.oner.wv;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class DomDemo {

	public static void main(String[] args) {
		List<Person> list = parseDomXML();
		for (Person person : list) {
			System.out.println(person);
		}
	}

	private static List<Person> parseDomXML() {
		// 创建一个文档解析工厂
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		// 创建一个接收容器
		List<Person> list = new ArrayList<Person>();
		Person person = null;

		try {
			// 由文档解析工厂得到文档解析对象
			DocumentBuilder builder = factory.newDocumentBuilder();
			// 封装xml文件
			InputStream is = new FileInputStream(new File(
					"src/com/oner/wv/person.xml"));
			// 把XML文件的输入流放入解析器中进行解析,这时就将xml文件装载到了内存中了
			Document doc = builder.parse(is);

			// 从解析器中获取person元素集合
			NodeList personList = doc.getElementsByTagName("person");
			// System.out.println(personList.getLength());
			for (int i = 0; i < personList.getLength(); i++) {
				// 得到每个person元素
				Node personNode = personList.item(i);
				person = new Person();
				// 获取person元素的id属性
				String id = personNode.getAttributes().getNamedItem("id")
						.getNodeValue();
				// System.out.println(id);
				// 将获取到的id值赋给Person实例
				person.setId(id);
				// 获取person元素的子元素集合
				NodeList childList = personNode.getChildNodes();
				for (int j = 0; j < childList.getLength(); j++) {
					// 得到每个person元素的子元素
					Node childNode = childList.item(j);
					// 得到每个person元素的子元素的名称
					String name = childNode.getNodeName();
					// System.out.println(name);
					// 得到每个person元素的子元素的文本结点的内容,并将其赋值给Person类实例
					if ("name".equals(name)) {
						person.setName(childNode.getFirstChild().getNodeValue());
					} else if ("age".equals(name)) {
						person.setAge(Integer.parseInt(childNode
								.getFirstChild().getNodeValue()));
					} else if ("sex".equals(name)) {
						person.setSex(childNode.getFirstChild().getNodeValue());
					} else if ("tel".equals(name)) {
						person.setTel(childNode.getFirstChild().getNodeValue());
					}
				}
				// System.out.println(person);
				// 将得到的Person实例添加到list集合中
				list.add(person);
			}

		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return list;
	}

}

运行结果:



2. SAX解析XML

SAX,全称Simple API for XML,既是一种接口,也是一种软件包。它是一种XML解析的替代方法。SAX不同于DOM解析,它逐行扫描文档,一边扫描一边解析。由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中,这对于大型文档的解析是个巨大优势。

SAX解析:

PersonHandler.java

package com.oner.wv;

import java.util.ArrayList;
import java.util.List;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/**
 * 数据处理器
 * 
 * @author Oner.wv
 *
 */
public class PersonHandler extends DefaultHandler {

	private List<Person> list;
	private Person person;
	private String tag;// 标记名称

	public List<Person> getList() {
		return list;
	}

	public void setList(List<Person> list) {
		this.list = list;
	}

	@Override
	// 开始解析文档
	public void startDocument() throws SAXException {
		list = new ArrayList<Person>();
		System.out.println("开始解析文档啦");
	}

	@Override
	// 文档解析结束
	public void endDocument() throws SAXException {
		System.out.println("文档解析结束");
	}

	@Override
	// 开始解析节点
	public void startElement(String uri, String localName, String qName,
			Attributes attributes) throws SAXException {
		if ("person".equals(qName)) {
			person = new Person();
			// 获取person元素的id属性,并将其赋值给Person类实例
			person.setId(attributes.getValue("id"));
		}

		tag = qName;
	}

	@Override
	// 保存节点内容
	public void characters(char[] ch, int start, int length)
			throws SAXException {
		if (tag != null) {
			if ("name".equals(tag)) {
				person.setName(new String(ch, start, length));
			} else if ("age".equals(tag)) {
				person.setAge(Integer.parseInt(new String(ch, start, length)));
			} else if ("sex".equals(tag)) {
				person.setSex(new String(ch, start, length));
			} else if ("tel".equals(tag)) {
				person.setTel(new String(ch, start, length));
			}
		}
	}

	@Override
	// 结束解析节点
	public void endElement(String uri, String localName, String qName)
			throws SAXException {
		tag = null;
		if ("person".equals(qName)) {
			list.add(person);
		}
	}

}


SAXDemo.java

package com.oner.wv;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.SAXException;

/**
 * 基于事件移动,不占内存,灵活性差,顺序读取,速度快,适用于性能要求较高的设备上使用
 * 
 * @author Oner.wv
 *
 */
public class SAXDemo {

	public static void main(String[] args) {
		List<Person> list = parseSAXXML();
		for (Person person : list) {
			System.out.println(person);
		}
	}

	private static List<Person> parseSAXXML() {
		List<Person> list = new ArrayList<Person>();
		// 解析器工厂
		SAXParserFactory factory = SAXParserFactory.newInstance();

		try {
			// 生成解析器
			SAXParser sax = factory.newSAXParser();
			// 封装xml文件
			InputStream is = new FileInputStream(new File(
					"src/com/oner/wv/person.xml"));
			PersonHandler dh = new PersonHandler();
			sax.parse(is, dh);// 解析
			list = dh.getList();
		} catch (ParserConfigurationException | SAXException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		return list;
	}

}

     运行结果:


3. JDOM解析XML

JDOM简化了与XML的交互并且比使用DOM实现更快,JDOM与DOM主要有两方面区别。首先,JDOM仅使用 了具体类而不使用接口,这在某些方面简化了API,但是也限制了灵活性。第二,大量使用了 Collections类,简化了那些已经熟悉这些类的Java开发者的使用。

JDomDemo.java

package com.oner.wv;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;

public class JDomDemo {

	public static void main(String[] args) {
		List<Person> list = parseJDomXML();
		for (Person person : list) {
			System.out.println(person);
		}
	}

	private static List<Person> parseJDomXML() {

		List<Person> list = new ArrayList<Person>();
		SAXBuilder builder = new SAXBuilder();
		try {
			InputStream is = new FileInputStream(new File(
					"src/com/oner/wv/person.xml"));
			// 解析文档
			Document doc = builder.build(is);
			// 获取根结点
			Element root = doc.getRootElement();
			List<Element> rootList = root.getChildren();
			for (int i = 0; i < rootList.size(); i++) {
				Element e = rootList.get(i);
				Person person = new Person();
				person.setId(e.getAttributeValue("id"));
				System.out.println(e.getAttributeValue("id"));
				List<Element> personList = e.getChildren();
				for (int j = 0; j < personList.size(); j++) {
					Element personNode = personList.get(j);
					String tag = personNode.getName();
					System.out.println(tag);
					if ("name".equals(tag)) {
						person.setName(personNode.getText());
					} else if ("age".equals(tag)) {
						person.setAge(Integer.parseInt(personNode.getText()));
					} else if ("sex".equals(tag)) {
						person.setSex(personNode.getText());
					} else if ("tel".equals(tag)) {
						person.setTel(personNode.getText());
					}
				}
				list.add(person);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (JDOMException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

		return list;
	}
}


运行结果:


4. DOM4J解析

dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。如今可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这已经是必须使用的jar包, Hibernate也用它来读写配置文件。

Dom4JDemo.java

package com.oner.wv;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Dom4JDemo {

	public static void main(String[] args) {
		List<Person> list = parseDom4JXML();
		for (Person person : list) {
			System.out.println(person);
		}
	}

	private static List<Person> parseDom4JXML() {

		List<Person> list = new ArrayList<Person>();
		SAXReader reader = new SAXReader();
		try {
			InputStream is = new FileInputStream(new File(
					"src/com/oner/wv/person.xml"));
			Document doc = reader.read(is);
			Element root = doc.getRootElement();
			Iterator<Element> iter = root.elementIterator();
			while (iter.hasNext()) {
				Element e = iter.next();
				Iterator<Element> i = e.elementIterator();
				Person person = new Person();
				person.setId(e.attributeValue("id"));
				while (i.hasNext()) {
					Element el = i.next();
					String tag = el.getName();
					if ("name".equals(tag)) {
						person.setName(el.getText());
					} else if ("age".equals(tag)) {
						person.setAge(Integer.parseInt(el.getText()));
					} else if ("sex".equals(tag)) {
						person.setSex(el.getText());
					} else if ("tel".equals(tag)) {
						person.setTel(el.getText());
					}
				}
				list.add(person);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (DocumentException e) {
			e.printStackTrace();
		}
		return list;
	}

}


运行结果:


从零开始:在Ubuntu 22.04上配置Isaac Gym Preview 3环境(含常见错误解决方案) 本文提供了在Ubuntu 22.04系统上从零开始配置Isaac Gym Preview 3环境的完整实战指南。内容涵盖NVIDIA驱动安装、Conda环境搭建、CUDA与PyTorch版本精准匹配、Isaac Gym核心安装与验证,并重点介绍了针对四足机器人等复杂系统的强化学习训练环境配置、常见错误解决方案及性能调优技巧,旨在帮助开发者高效部署这一高性能物理仿真平台。 阅读详情

相关推荐

Spring AI 实战:5 分钟搭建你的第一个 AI 应用(含完整代码)

能力关键 API适用场景基础对话简单问答、文本生成流式输出实时打字机效果@Bean模型需要调用外部工具结构化输出需要返回 Java 对象多轮对话聊天机器人场景Spring AI 让 Java 开发者可以用最熟悉的方式(Spring Boot + Maven)进入 AI 应用开发领域,不用学新语言,不用换框架,这是它最大的优势。但目前为止,我们的 AI 应用只能回答"它脑子里已有的知识"。如果让它读懂你自己的技术文档、公司内部知识库呢?这就是下一篇文章的主题——RAG(检索增强生成)实战。

qq_17204557的博客 642

C++解析XML文件

C++读取XML文件

StarWang的博客 1万+

TCP三次握手,四次挥手的全过程,为什么需要三次握手,四次挥手

文章目录TCP介绍三次握手四次挥手滑动窗口拥塞避免算法 TCP介绍 三次握手 四次挥手

热爱编程的菜鸟 1万+

什么是xml解析?xml解析的有几种常用的解析方式?

SAX解析只能查询,不能实现增删方法,不常用,这里就不过得介绍了

superliug的博客 6119

SIwave仿真手册——信号完整性仿真之S参数的提取(二)

上一篇简单了讲述了软件的各个操作界面,本次博客更新关于的仿真,因为第二章完整的内容比较多,所以分成好几篇博客进行分享。

luohuo9844的博客 1万+

Android开发者必看:F2FS文件系统如何优化你的手机存储性能(附实测数据对比)

本文深入解析了F2FS文件系统如何针对闪存特性优化Android设备存储性能。通过对比ext4,F2FS采用追加写和冷热数据分离策略,将随机写转化为顺序写,显著提升写入速度并减少GC卡顿。实测数据显示,其在随机写入和SQLite事务等场景下性能提升显著,为开发者提供了优化应用IO性能的关键思路。

weixin_29248313的博客 324

python解析xml

你需要。

weixin_45365818的博客 4882

深度学习环境搭建以及DeepLabCut安装过程

文章目录 一、查询电脑硬件 安装GeForce驱动程序 二、环境搭建与软件安装 1.安装CUDA运算平台软件 2.安装cuDNN支持包 3.配置环境变量 三、 DeepLabCut环境配置 1.安装Anaconda 2.创建容器环境 3.激活容器环境 4.安装TensorFlow 5.验证TensorFlow是否安装成功 6...

m0_51136557的博客 3155

XML解析——Java中XML的四种解析方式

XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。   XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。   针对以下XML文件,会对四种方式进行详细描述: <?xml version="1.0

qq_37272886的博客 4202

dToF直方图之美_deadtime死区时间

IMX459的死区时间可以在6ns,这个时间是什么级别,车载激光雷达激光器的光脉宽一般都在4ns以上,也就是这个时间贴近去SPAD的死区时间,这就导致了pile up会非常弱,不会有太多数量的光子计数堆积,加上某些SPAD设计,对TDC有一些更深入的考量,所以不需要去校正pile up算法。Sensor层面决定了pile up的复杂程度,如果一个dToF的SPAD一致性非常好,那么pile up校正可以简单到极致,也就是一句代码的事,比如IMX611,优秀到不需要后端去考虑校正pile up。

致力于lidar应用开发 2147

【基于深度学习的脑电图识别】数据集篇:THE TUH EEG CORPUS: A Big Data Resource for Automated EEG Interpretation

【基于机器学习的脑电图识别】数据集篇:脑电信号自动判读的大数据摘要: 摘要: 这个数据集包括超过 25000 个脑电图研究,包括一个神经学家对测试的解释,一个简短的病人病史和关于病人的人口统计信息,如性别和年龄。这是第一次有足够的数据来支持最先进的机器学习算法的应用。在这篇论文中,我们使用了3762个语料库的会话子集,展示了从原始脑电图信号数据预测脑电图的一些基本属性的初步实验结果。在闭环测试中,...

梁瑛平的博客 5615

Python XML 解析

XML 指可扩展标记语言(eXtensibleMarkupLanguage)。你可以通过本站学习XML 教程XML 被设计用来传输和存储数据。XML 是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。Python 对 XML 的解析常见的 XML 编程接口有 DOM 和 SAX,这两种接口处理 XML 文件的方式不同,当然使用场合也不同。characters(content)方法。

qq_48368964的博客 1934

【Zephyr驱动专题】01_深扒MPU6050陀螺仪寄存器

MPU6050作为最常用的6轴运动跟踪器件,其寄存器配置直接影响传感器性能和功能实现。本文将深入解析关键寄存器,并使用逻辑分析仪抓取信号进行分析。

zero的博客 1571

XML解析(一),SAX解析XML

一、概述 SAX,全称Simple API for XML,是一种以事件驱动的XMl API,是XML解析的一种新的替代方法,解析XML常用的还有DOC解析,PULL解析(Android特有),SAX与DOC不同的是它边扫描边解析,自顶向下依次解析,由于边扫描边解析,所以它解析XML具有速度快,占用内存少的优点,对于Android等CPU资源宝贵的移动平台来说是一个巨大的优势。 SAX的优点:解析速

宿罪的博客 3万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

XML 解析

一、五种解析方法 1、DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取 和操作文档的任意部分,是W3C的官方标准【优点】 ①允许应用程序对数据和结构做出更改。 ②访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据。【缺点】 ①通常需要加载整个XML文档来构造层次结构,消耗资源大。【解析详解】 ①构建Document对象: DocumentBuild...

qq_30436011的博客 5041

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

perl 解析xml_使用Perl的高级XML解析技术

对于种类繁多的Perl应用程序,选择的XML工具是XML::Simple ,这是本系列第1部分的主题(请参阅参考资料 )。 XML::Simple将XML输入文件转换为易于操作的Perl数据结构,并将这些数据结构写回XML。 但是请记住,这种方法在某些情况下不起作用。 当您需要在内存中构建XML文档的表示形式,然后以相当复杂或不可预测的方式搜索或转换XML文档时, XML::Simple并...

cuyi7076的博客 2284

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

xml文件解析 (DOM4J解析XML) -java

文章目录前言一、本地XML解析1、导包并配置1、在项目下新建lib文件夹,并把jar包导入。2、更改项目配置2、编写一个简单的本地XML文件3、解析本地XML文件:二、解析网络上的XML文件1.网址:2、来解析此网络XML文件总结 前言 今天,我们对xml文件进行解析。分别对本地的xml文件和网络上的xml文件进行解析。 提示:以下是本篇文章正文内容。 一、本地XML解析 1、导包并配置 1、在项目下新建lib文件夹,并把jar包导入。 2、更改项目配置 接下来 选中添加刚才创建的Libr

qq_43783709的博客 3371

java解析XML

概念:x(extensible)可扩展的 M(markup)标记/节点 L(language)语言 -->可扩展的标记语言. 一、XML语言的作用 1、存:特殊的文件,单级游戏里的等级和装备存到XML文件中 2、传:网络上传递数据 3、配置文件 二、XML文件的特点 跨平台性 多语言都支持XML语言 XML具有自我描述性:所有节点(元素)自定义 三、XML的语法规则 要有根节点,只能有一个 节点要有开始和结束<节点名...

asddasddeedd的博客 3922

XML之XML解析

本文详细介绍了XML解析,以及DOM4J和XPath,简单介绍了DOM、SAX、JDOM解析

TestXzing的博客 1200

php怎么解析xml,php解析xml方法实例详解

本文以实例形式详细讲述了php解析xml方法。分享给大家供大家参考。具体分析如下:books.xml文件如下:Harry PotterJ K. Rowling200529.99Everyday ItalianGiada De Laurentiis200530.00Learning XMLErik T. Ray200339.951、DOM解析XML//创建一个DOMDocument对象$doc=ne...

weixin_34135180的博客 2818

XML篇之XML解析

什么是xml解析XML 解析是指对 XML 文档进行解析,从而获取文档中的数据信息的过程。XML(Extensible Markup Language)是一种用于存储和传输数据的标记语言。它和 HTML 相似,都是用标签来描述文档内容,但 XML 更加灵活和扩展,适用于存储和传输各种结构化数据。常见的 XML 应用包括 RSS、SOAP、Atom、SVG 等。XML 解析器是用于对 XML 文档进行解析的程序。XML 解析的方式一般有两种:DOM 解析和 SAX 解析。

m0_73329959的博客 2164

XML及XML的解析方式

XML写在前面的话简介为什么学习XMLXML文件XML语法格式1,XML文档声明2,标记(元素/ 标签/ 节点 )3,标记可以嵌套,但不能交叉4,一个XML文档中,必须有且仅有一个根标记5,标记的层级称号6,标记名称允许重复7,标记除了开始和结束,还有属性8,注释语法进阶CDATA(了解)DOM4解析XML解析步骤:文档对象 Document元素对象解析本地文件案例:解析网络文件案例:Xpath解析XML路径表达式使用步骤通过java生成XML步骤举例:XStream的使用(了解)使用步骤举例:Java如何

m0_58702068的博客 1071

Dom4j解析XML

1.XML解析的方式介绍 在日常开发中常见的XML解析方式有如下两种:1.DOM解析 DOM解析要求解析器将整个XML文件全部加载到内存中,生成一个Document对象。 1.优点:元素和元素之间保留结构,关系,可以针对元素进行增删改查操作。 2.缺点:如果XML文件过大,可能会导致内存溢出。2.SAX解析 SAX解析是一种更加高效的解析方式。它是逐行扫描,边扫描边解析,并且以时间驱动的方式进行具体的解析,每解析一行都会触发一个事件。 1.优点:不会出现内存溢出的问题,可以处理大文件。 2.缺点:只能读,不

az44yao的专栏 2144
上一篇: Servlet—ServletConfig、ServletContext
下一篇: HTML快速入门
Wang_AI
博客等级 码龄12年 988粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值