Java 生成和解析xml文件

【Java编程】SAX XML Parser解析、生成XML文件 1、优缺点 优点: SAX 从根本上解决了 DOM 在解析 XML 文档时产生的占用大量资源的问题。其实现是通过类似于流解析的技术,通读整个 XML 文档树,通过事件处理器来响应程序员对于 XML 数据解析的需求。由于其不需要将整个 XML 文档读入内存当中,它对系统资源的节省是十分显而易见的,它在一些需要处理大型 XML 文档以及性能要求较高的场合有起了十分重要的作用。支持 XPath 查询 阅读详情
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/**
 * 
 *DOM生成与解析XML文档
 */
public class DomDemo implements XmlDocument {
	private Document document;
	private String fileName;

	public void init() {
		try {
			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();
			this.document = builder.newDocument();
		} catch (ParserConfigurationException e) {
			System.out.println(e.getMessage());
		}
	}

	public void createXml(String fileName) {
		Element root = this.document.createElement("employees");
		this.document.appendChild(root);
		Element employee = this.document.createElement("employee");
		Element name = this.document.createElement("name");
		name.appendChild(this.document.createTextNode("丁宏亮"));
		employee.appendChild(name);
		Element sex = this.document.createElement("sex");
		sex.appendChild(this.document.createTextNode("m"));
		employee.appendChild(sex);
		Element age = this.document.createElement("age");
		age.appendChild(this.document.createTextNode("30"));
		employee.appendChild(age);
		root.appendChild(employee);
		TransformerFactory tf = TransformerFactory.newInstance();
		try {
			Transformer transformer = tf.newTransformer();
			DOMSource source = new DOMSource(document);
			transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
			PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
			StreamResult result = new StreamResult(pw);
			transformer.transform(source, result);
			System.out.println("生成XML文件成功!");
		} catch (TransformerConfigurationException e) {
			System.out.println(e.getMessage());
		} catch (IllegalArgumentException e) {
			System.out.println(e.getMessage());
		} catch (FileNotFoundException e) {
			System.out.println(e.getMessage());
		} catch (TransformerException e) {
			System.out.println(e.getMessage());
		}
	}

	public void parserXml(String fileName) {
		try {
			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
			DocumentBuilder db = dbf.newDocumentBuilder();
			Document document = db.parse(fileName);
			NodeList employees = document.getChildNodes();
			for (int i = 0; i < employees.getLength(); i++) {
				Node employee = employees.item(i);
				NodeList employeeInfo = employee.getChildNodes();
				for (int j = 0; j < employeeInfo.getLength(); j++) {
					Node node = employeeInfo.item(j);
					NodeList employeeMeta = node.getChildNodes();
					for (int k = 0; k < employeeMeta.getLength(); k++) {
						System.out.println(employeeMeta.item(k).getNodeName()
								+ ":" + employeeMeta.item(k).getTextContent());
					}
				}
			}
			System.out.println("解析完毕");
		} catch (FileNotFoundException e) {
			System.out.println(e.getMessage());
		} catch (ParserConfigurationException e) {
			System.out.println(e.getMessage());
		} catch (SAXException e) {
			System.out.println(e.getMessage());
		} catch (IOException e) {
			System.out.println(e.getMessage());
		}
	}
	
	public static void main(String[] args) {
		String path = "D:/text.xml";
		
		DomDemo dom = new DomDemo();
		dom.init();
		
		//dom.createXml(path);
		dom.parserXml("D:/realTimeDevice.xml");
		//dom.parserXml("D:/coalDatabase.xml");
	}
}

Java使用dom4j生成Xml文件和解析Xml文件 1. 使用DOM4J方式生成XML文件的步骤如下: import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; impor... 阅读详情

相关推荐

JAVA读取XML文件并解析 以及 JAVA生成文本文件输出

废话不多说,直接上代码及说明吧! package Dao; import java.io.File; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory;

ch66586953的专栏 1618

java xml 代码_XML模式到Java代码

在你开始前 关于本教程 JiBX是用于将XML数据绑定到Java™对象的工具。 长期以来,JiBX数据绑定是将Java代码绑定到XML的最快,最灵活的方法。 但是,其绑定定义的复杂性以及对日益广泛使用的XML模式定义的有限支持有时使用户感到沮丧。 幸运的是,JiBX的1.2版本对于消除这些问题大有帮助。 在本教程中,您将学习如何使用JiBX 1.2的新功能轻松地从XML模式定义生成Ja...

cusi77914的博客 912

Java解析XML与生成XML文件

XML是eXtensible Markup Language(可扩展标记语言)的简写形式,它是一种元标记语言(meta-markup language),也就是说它没有一套能够适用于各个领域中所有用户的固守的标签和元素,相反,它允许开发者根据自已的需要定义自已的元素,XML中的X(eXtensible)就是说明了这一点。它的特点有: 1、XML使用Unicode字符集,可生成英文、中文、希腊文或梵

更上一层楼! 8587

Java之XML概念

Java之XML介绍

qq_45667640的博客 611

Linux内存压力测试工具【memtester】详且精

对Linux下的压力测试工具memtester有一个比较人性化的概述,以及避坑心得。

weixin_44118923的博客 1万+

数学分析五领域全景:实分析、复分析、泛函分析、傅里叶分析、凸分析

五种分析,五种视角,同一个目标。理解一个系统,首先要找到它的不变量。

li880862的博客 196

Java学习-XML

XML的数据的作用是什么,最终需要怎么处理?存储数据、做配置信息、进行数据传输。最终需要被程序进行读取,解析里面的信息。什么是XML解析●使用程序读取XML中的数据两种解析方式●SAX解析●DOM解析XPath在解析XML文档方 面提供了-独树一-帜的路径思想,更加优雅,高效XPath使用路径表达式来定位XML文档中的元素节点或属性节点。

weixin_46051964的博客 855

腾讯混元3D世界模型2.0实战:从AI生成到Unity/UE引擎集成全指南

生成式AI正在重塑3D内容创作流程,其核心原理是通过大语言模型理解自然语言描述,并驱动多阶段生成流水线自动创建3D资产与场景。这项技术为游戏开发、虚拟仿真和数字孪生领域带来了革命性的效率提升,能够将传统需要数周的美术协作流程压缩至几分钟。在实际应用中,开发者需要掌握本地环境部署、模型推理优化以及生成资产与主流游戏引擎的集成工作流。本文以腾讯开源的混元3D世界模型为例,详细解析如何将AI生成的场景通过插件高效导入Unity和Unreal Engine,并针对光照烘焙、材质调整、性能优化等工程实践问题提供解决方

cnracht8153的博客 1397

JAVA异常 java.io.IOException Stream closed 的解决办法

在程序执行过程中,如果我们遇见了以下异常:java.io.IOException: Stream closed. 即stream已经被关闭,我们分析一下就很容易知道原因了,即stream已经被关闭。那么最有可能的情况就是你多次关闭了Stream。 例如: try { InputStream is = new xxx(); // other codes is.close(); //第一次关闭inputStream } catch(IOException e) { } finally { is.close()

m0_67402013的博客 3万+

西门子S7-1200/1500 PLC编程与应用技巧

西门子S7-1200 PLC是一款紧凑型的控制器,适用于小型到中型的自动化控制任务。紧凑设计:集成了I/O模块,减少了控制柜的空间需求。高性能:高达25µs的扫描时间,能够快速响应。模块化扩展:支持扩展输入输出模块、通信模块和智能模块,满足不同的应用需求。多种编程语言:支持Ladder图(梯形图)、功能块图(FBD)、结构化文本(ST)等多种编程语言。西门子S7-1200与S7-1500 PLC是强大且灵活的工业控制系统,适用于各种自动化应用。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 2679

WandB本地部署踩坑指南:从Docker启动到License更新的完整流程(附常见错误解决方案)

本文详细介绍了Weights & Biases(WandB)机器学习实验管理平台的本地化部署全流程,涵盖从Docker环境搭建、许可证管理到常见错误排查的实战经验。针对企业级应用场景,文章还提供了性能优化、高可用架构设计及开源替代方案Trackio的评估与迁移策略,为构建安全、可控的内部实验追踪平台提供完整解决方案。

potato的博客 570

java.io.IOException: Stream closed`异常的正确解决方法,亲测有效,嘿嘿嘿

`java.io.IOException: Stream closed` 异常通常发生在尝试对已关闭的输入/输出流(如 `InputStream`、`OutputStream`、`Reader`、`Writer` 等)执行操作时。一旦流被关闭,任何试图读取或写入该流的操作都会抛出这个异常。 ### 报错原因 1. **流被错误地关闭了**:在代码中可能不小心提前关闭了流,或者在多线程环境中另一个线程关闭了流。 2. **资源管理的错误**:使用 `try-with-resources` 语句时,流会在

PythonAigc的博客 8777

GPD源码分析

gpd使用示例 先看下面一段代码,为标准gpd算法的使用方法,可以看到输入为点云,cloud_camera_; 输入:std::unique_ptr<gpd::util::Cloud> cloud_camera_ 输出: std::vector<std::unique_ptr<gpd::candidate::Hand>> grasps; // detect grasp poses gpd对象:std::unique_ptr<gpd::GraspDetect.

weixin_41003113的博客 2335

Java之Pull方式生成xml文件和解析xml文件

Pull XML解析器早已经被google集成到android sdk当中,它是google官方推荐的解析器。 如果我们要在Java桌面、J2ME等当中使用Pull方式生成xml文件和解析xml文件,需要用到kxml2; KXML解析器是基于普通XML PULL解析器的一个小巧的解析器,官网是http://kxml.org/ 普通XML PULL解析器的官网是http://x

bear_huangzhen的专栏 5015

《QEMU/KVM源码分析与应用》读书笔记1 —— 第1章 QEMU与KVM概述

《QEMU/KVM源码分析与应用》学习笔记1 —— 第一章 QEMU与KVM概述

phmatthaus的专栏 1988

ICLR 2025 | MambaPEFT: 探索针对Mamba的参数高效微调方法

通过利用海量数据构建大型模型,基于Transformer的模型生态系统已逐步确立。参数高效微调(PEFT)是一项至关重要的技术,它能以最低成本将这些模型应用于下游任务,同时实现高效的性能表现。最近,基于状态空间模型(SSM)的Mamba模型作为Transformer的潜在替代方案受到了广泛关注。尽管已经提出了许多基于Mamba的大规模模型,但如何高效地将预训练的Mamba模型应用于下游任务仍有待研究。在本文中,作者对适用于Mamba的PEFT方法展开了探索性分析。

小白学视觉 329

java pull 修改 xml_Java之Pull方式生成xml文件和解析xml文件

Pull XML解析器早已经被google集成到android sdk当中,它是google官方推荐的解析器。如果我们要在Java桌面、J2ME等当中使用Pull方式生成xml文件和解析xml文件,需要用到kxml2;KXML解析器是基于普通XML PULL解析器的一个小巧的解析器,官网是http://kxml.org/实验开始:在Eclipse中新建一个java项目,其中新建一个libs文件夹,...

weixin_39612122的博客 177

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

DOM4J、DOM4J-XPATH解析XML及通过Java生成XML文件

DOM4J解析XML 步骤 引入jar文件 dom4j.jar 创建一个指向XML文件的输入流 FileInputStream fis = new FileInputStream(“xml文件的地址”); 创建一个XML读取工具对象 SAXReader sr = new SAXReader(); 使用读取工具对象, 读取XML文档的输入流 , 并得到文档对象 Document doc = sr.read(fis); 通过文档对象, 获取XML文档中的根元素对象 Element root

技术小白 993

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

利用jdk对xsd文件操作生成java实体并解析生成的xml

步骤如下: 1.根据xsd生成相应的java类: 执行如下命令即可生成java类,xjc –d  java类的存放路径 –p 类的包名  xsd文件名 例如:D:\java\jdk1.6.0_31\bin>xjc -d e:\ -p org.nssd e:\journal.xsd 2. 根据xsd可以生成测试xml数据,用eclipse等工具可以生成测试数据,右键xsd文件Gene

zeb_perfect的专栏 1万+

java读取html生成xml_JavaWeb_使用dom4j解析、生成XML文件

dom4j  官网xml解析DOM文档对象模型(树形结构)DOM方式解析:把xml文档加载到内存形成树形结构,可以进行增删改的操作Learn使用dom4j解析文件"NewFile.xml"使用dom4j生成XML文件添加jar包进Project中  百度云  传送门  密码:7c8x1,解析根元素2,解析有哪些子元素3,解析一个元素又哪些属性4,得到元素的文本内容5,修改、添加、删除某个元素节点6...

weixin_29499829的博客 282

java解析xml生成表格_JAVA读取XML文件并解析 以及 JAVA生成文本文件输出

废话不多说,直接上代码及说明吧!package Dao;import java.io.File;import java.util.ArrayList;import java.util.List;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c...

weixin_34966468的博客 485

java代码怎样生成和解析XML文件

我记得有一次,为了调试第三方系统返回的XML,需要很多时间才能找到它复杂的命名空间定义,因为一个小错误,XPath表达无效。然而,流动分析的缺点是不能随机访问,只能按顺序读取,您需要维护自己的分析状态,代码将相对复杂。如果XML文件声明是UTF-8,但GBK被用于实际保存,或者分析器默认按ISO-8859-1读取,那么乱码是不可避免的。

qq360737395的博客 184

java 字符串生成xml_Java如何生成和解析XML格式文件和字符串

Java如何生成和解析XML格式文件和字符串发布时间:2020-12-08 12:27:16来源:亿速云阅读:80作者:小新小编给大家分享一下Java如何生成和解析XML格式文件和字符串,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、基础知识:Java解析XML一般有四种方法:DOM、SAX、JDOM、DOM4J。2、...

weixin_42437067的博客 548

对xsd文件的操作 生成java实体并解析生成的xml

步骤如下: 1. 根据xsd生成相应的java类: 执行如下命令即可生成java类,xjc –d  java类的存放路径 –p 类的包名  xsd文件名 例如:D:\java\jdk1.6.0_31\bin>xjc -d e:\ -p org.nssd e:\journal.xsd 2. 根据xsd可以生成测试xml数据,用eclipse等工具可以生成测试数据,

wangshfa的专栏 1万+
上一篇: 详解Java解析XML的四种方法
下一篇: Ext JS - 高效的编码风格指南
JavaAlpha
博客等级 码龄18年 910粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值