sax解析xml文档

【Java练习】利用xml做一个简易的通讯录 对contact.xml文件里边的内容进行增,删,改,查 1)增加联系人 2)修改联系人 3)删除联系人 4)查询所有联系人(全部) 要求: 1)交互使用控制台进行交互 2)联系人的数据存储到xml文件中(contact.xml) (dom4j的操作)思路: 创建一个工具类TelTool,将所有功能封装进去,再使用 测试类进行 阅读详情
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;
import java.util.Stack;

public class saxJava extends DefaultHandler {
	  //将数据保存在Stack中	
      Stack tags = new Stack();
      
      public saxJava() {
      	super();
	  }

      public static void main(String args[]) {
		//当前时间,单位毫秒
	    long lasting = System.currentTimeMillis();
	    
	    try {
	    	//创建解析工厂
			SAXParserFactory sf = SAXParserFactory.newInstance();
			//得到解析器
			SAXParser sp = sf.newSAXParser();
			//设置内容处理器
		    saxJava reader = new saxJava();
		    //
			sp.parse(new InputSource("a.xml"), reader);
		}catch (Exception e) {
			e.printStackTrace();
		}
		
		System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) + "毫秒");
	}
		public void characters(char ch[], int start, int length) throws SAXException {
			String tag = (String) tags.peek();
			if (tag.equals("code")) {
		  		System.out.print(new String(ch, start, length));
			}
			if (tag.equals("pass")) {
		  		System.out.print(new String(ch, start, length));
			}
			if (tag.equals("name")) {
				System.out.print(new String(ch, start, length));
			}
			if (tag.equals("money")) {
		  		System.out.print(new String(ch, start, length));
			}		
		}
	
		public void startElement(String uri,String localName,String qName,Attributes attrs){
	   		tags.push(qName);
		}
		
	
} 

xml文档是我copy过来的!!!!

xml文档(a.xml)内容:

<?xml version="1.0" encoding="gbk"?>      
<Accounts>
<Account type="by0003"> 
<code>100001</code>
<pass>123</pass>
<name>李四</name> 
<money>1000000.00</money> 
</Account> 
<Account type="hz0001"> 
<code>100002</code>
<pass>123</pass>
<name>张三</name> 
<money>1000.00</money> 
</Account> 
</Accounts>
JavaEE实战——XML文档DOM、SAX、STAX解析方式详解 本文主要介绍XML文档作为存储和传输数据的三种解析方式,其各自主要的思想、实现方式、CURD实现,以及最后展示一个综合的实战例子加以巩固理解。 阅读详情

相关推荐

SAX事件解析XML文档的DefaultHandler

SAX事件解析的DefaultHandler源码分析:public class DefaultHandler implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler { public InputSource resolveEntity (String publicId, String systemId)...

xqk709008281的博客 5440

XML解析之SAX解析:如何将XML信息存储到集合中

xml源文件<?xml version="1.0" encoding="utf-8"?> <contact-list> <contact id="001" hobby="eat"> <name>张三</name> <gender>男</gender> <age>22</age> <phone>17728394033</phone

第五个世界的博客 1832

4、使用SAX解析XML文档

本文详细介绍了如何使用SAX解析XML文档,包括设置解析器的特性和属性,实现处理程序接口以响应解析事件,以及通过示例代码演示了SAX API的使用。同时分析了解析过程中的方法调用顺序和异常处理策略,帮助开发者更高效地处理XML文档。

study的专栏 69

DOM 解析和SAX解析 XML 文档

一、xml的解析方式Dom和SAX区别: DOM:当按 照DOM模型解析XML文档时,就会在内存中构造一个对应的DOM树,它可以用于不同节点之间的遍历。然而,在遍历之前必须先完成DOM树的构造。因此, 在处理规模较大的XML文档时就很耗内存,占用资源较多。尤是只需要操作文档中一小部分时效率很低。DOM的优点在于它在内存中保存文档的整个模型。DOM的基本对象有5个:Document,Node,

yanmei的专栏 1190

SAX技术解析XML文档的全面实例

在SAX解析过程中,事件处理器扮演着极其重要的角色。它相当于整个解析流程中的“大脑”,负责处理在解析XML文档时触发的各种事件。SAX解析器通过回调方法向事件处理器报告当前解析状态,并由事件处理器决定如何响应这些事件。这种机制确保了解析过程中对内存的使用始终保持在最低水平,因为不需要将整个XML文档加载到内存中。

weixin_34618526的博客 907

大模型应用开发面试全流程实录:RAG、上下文工程与多Agent协作技术深度解析

Transformer 依靠多头自注意力和位置编码实现高效序列建模。Prompt Engineering包含多种设计思路,如 Zero-shot、Few-shot、Chain-of-thought,提升模型泛化和推理。Token 和上下文窗口直接影响模型性能与成本,选择需结合实际业务场景(如客服对话需长窗口)。Embedding 技术是 RAG 的基础,决定了语义检索效果。向量数据库如 FAISS、Milvus等分别适用于本地/分布式检索。

m0_52114506的博客 828

Flutter零基础APP开发保姆级教程:从环境搭建到打包发布

移动开发已成为软件工程领域的热门方向,但新手常因技术栈复杂、环境配置繁琐而止步。跨平台开发框架的出现,通过一套代码编译到多个操作系统,从原理上降低了多端适配的工程成本。Flutter作为Google开源的UI框架,凭借自绘渲染引擎和Dart语言的高效编译机制,能在Android与iOS上保持一致的交互体验,并支持Web与桌面端扩展,尤其适合快速验证产品想法和中小型应用落地。从环境变量配置、Android SDK安装,到模拟器部署与项目结构规划,新手往往会遇到工具链障碍。本文以Flutter为主线,完整演示从

weixin_33895657的博客 506

SAP CO-PA数据传送避坑指南:销售开票与FI/MM记账的日常配置实操(含KEKF/KE4I/KEI2)

本文深入解析SAP CO-PA数据传送中的常见配置问题,特别是销售开票与FI/MM记账环节的实操避坑指南。通过KEKF/KE4I/KEI2等关键配置点的详细说明,帮助用户避免数据失真和重复记录,提升获利能力分析的准确性。文章结合实战案例,揭示官方文档未提及的'数据黑洞'形成机制,为SAP顾问提供实用的排雷手册。

weixin_26905487的博客 390

SAX解析XML文档

SAX采用事件处理器的方式解析XML文档,利用SAX解析XML文档,涉及两个部分:解析器和事件处理器 解析器可以使用JAXP的API进行创建,创建出SAX解析器后,就可以指定解析器去解析某个XML文档 解析器在采用SAX方式解析某个XML文档时,它只要解析到XML文档的一个组成部分,都回去调用事件处理器的一个方法,解析器在调用事件处理器的方法时,会把当前XML文件内容作为方法的参数传递给事件处

RO_wsy的专栏 2557

伺服驱动器485通信

485通信使用方法,485通信在上位机和伺服驱动器之间的应用,根据需要驱动电机旋转。

haipi511715316的博客 1万+

信号输入到底要不要接GND?单端与差分输入的接地选择与抗干扰分析

在电子工程与工业现场中,接地是信号完整性的基石。电压本身是相对值,任何测量都需要一个公共参考点,这就是地(GND)在信号输入中的核心作用。单端输入依赖信号源与接收端共地,以GND为基准还原信号;差分输入则直接测量两根信号线之间的差值,天然不依赖本地地电位,因此能有效抑制共模干扰和地环路噪声。实际选型时,需要根据传感器类型、传输距离、地电位差大小权衡:短距离共地良好的场景可用单端,长距离或高干扰环境应优先考虑差分或隔离方案。本文从接地原理出发,结合实际接线与故障排查经验,帮助工程师在PLC、采集卡和传感器链路

weixin_28703507的博客 311

Java 中使用Sax技术解析XML文档

Sax解析机制 Sax 的全称为Simple APIs for XML ,也即XML简单运用程序接口。与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式。当使用SAX分析器对XML文档进行分析时,会触发一系列的事件,并激活相应的事件处理函数,应用程序通过对这些事件处理函数实现对XML文档的访问,因而SAX 接口也被称作事件驱动接口。 Sax分析器在实现时,它只是顺

JimGray的博客 538

从SPI协议到文件系统:手把手教你用HAL库给W25Q16移植FATFS(附扇区管理优化方案)

本文详细介绍了如何在STM32平台上,通过HAL库的SPI接口为W25Q16 Flash芯片移植FATFS文件系统。文章从SPI通信基础讲起,深入解析了FATFS底层驱动(diskio.c)的移植要点,并重点探讨了针对W25Q16的4KB物理扇区特性进行扇区管理优化的两种方案,旨在帮助开发者构建稳定高效的文件存储方案。

happy2的博客 1043

sax和dom在解析xml文档时有什么区别

当你需要处理XML文档时,你的首要选择是使用DOM(文档对象模型)还是使用SAX(用于XML的简单API),即当前使用的两个主要的XML API。你可以使用任何一种(或者在同一时间使用两种)来处理XML文档,然而DOM将文档载入到内存中处理,而SAX则相反,它可以检测一个即将到来的 XML流,由此并不需要所有的XML代码同时载入到内存中。 选择DOM与SAX,与在一个数据库中的表单与视图之前选择

zhupengqq的博客 3887

【教程4>第1章>第12节】通过Verilog读取txt格式数据进行测试并将结果导入到matlab

我们在verilog的testbench中,调用txt文件,将上述正弦样本数据作为测试激励输入到verilog模块中。通过这个方法,可以将一些较为复杂的数据导入到verilog中,进行FPGA数据处理模块的开发。即通过w方式打开一个新的txt文件,然后将verilog的输出保存到XY1.txt文件中。这个部分是txt文件的路径,实际使用时,修改为您自己的路径,或者将txt文件放在和我一样的路径中。这个是数据长度,matlab产生的txt多少长度,这个参数就修改为多少长度。这个txt就是保存这段数据的文件。

FPGA/MATLAB学习教程/源码/项目合作开发 1378

零基础学GPU KMD--8. 内存管理:GPU 显存与系统内存的协同​8.1 显存分配策略:GEM / TTM 原理

支持 VRAM、GTT(Graphics Translation Table)、SYSTEM 内存的动态迁移与缓存管理。:若缓冲区在 SYSTEM,TTM 分配 GTT 条目并建立页表映射,使 GPU 可直接访问。:系统内存中预留给 GPU 直接访问的区域,通过 GPU 的 MMU 做地址翻译。你需要我继续展开这一部分吗?​ 为复杂离散 GPU 设计,应对大容量 VRAM、多内存域、显存迁移等问题。:重量级、功能全,适合大容量、多内存域的离散 GPU,强调显存迁移与统一管理。

amy_mhd的博客 185

SAX方式解析XML文档

SAX的特点这里不再赘述,仅用一实例说明SAX解析XML文档的方式与原理 1.SAX常用的接口    ContentHandler    该接口封装了一些对事件处理的方法,比如文档的开始和结束、元素的开始和结束、以及元素中

l081307114的博客 606

200Gb/s以上速率的通道信号完整性设计和优化经验(二)

为满足200Gb/s信号完整性需求,需综合优化PCB、连接器、封装及SERDES架构。关键措施包括:采用低粗糙度铜箔与低损耗材料降低传输线损耗(200G目标0.55–0.6dB/cm);通过背钻工艺控制残桩长度至4±2mil;缩减连接器焊盘残桩至600μm以内以消除谐振;封装层面推进跳层走线、低Dk/Df材料与可控SMT工艺;采用PAM4调制与基于ADC/DSP的混合信号架构实现高效均衡。先进CMOS工艺(如纳米片器件)支撑复杂数字处理,协同设计是突破速率瓶颈的核心。

小孟同学的博客 148

Sax解析Xml文档

SAX(simpleAPIforXML)是一种XML解析的替代方法。相比于DOM,SAX是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。 在用Sax解析xml文档的时候不要忽略节点之间的空白字符串。 下面来实例看看如何使用Sax解析下面的Xml: 范冰冰 31 林志玲 38 杨幂 26 1.首先写一个java类,

shun_fzll的专栏 1706

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java sax生成xml报文_SAX解析和生成XML文档

一、前言SAX操作xml是基于事件来完成的,自己只负责调用解析的方法,然后具体解析操作都是交给DefaultHandler处理者来完成的,总的来说使用SAX解析和生成xml文档还是比较方便的 。二、准备条件因为SAX是jdk自带的解析方式,所以不用添加jar包引用。三、使用SAX实战1、解析xml文档实现思路:<1>先由SAXParserFactory这个工厂的实例生产一个SAXPar...

weixin_32576389的博客 838

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java解析XML文档SAX入门案例

Java解析XML文档DOM入门案例 1 ² 面试题: 如何设置JVM运行内存的大小? 1 1.为什么会出现sax技术 2 2.sax技术可以在不加载全部 xml 文件时,就可以解析xml文档,看一个原理图: 3 ² SAX的优缺点(读取方便,不能增删改) 3 ² SAX解析XML文档的入门案例 4 1. XML文档: 4 2. Java用SAX解析代码:(有去读指定元素的方法,还有

柠檬、别离 1028

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SAX解析和生成XML文档

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。 作者:永恒の_☆ 地址:http://blog.youkuaiyun.com/chenghui0317/article/details/11990891 一、前言    SAX操作xml是基于事件来完成的,自己只负责调用解析的方法,然后具体解析操作都是交给DefaultHandler处理者

永恒の_☆ 1万+

XML文档解析技术之SAX解析与DOM解析

一、SAXReader SAX解析xml的方式是一种快速解析xml文档的手段,优点是效率高,适用于解析量不大的xml文档。 使用案例: 使用sax的方式将如下的xml文档的用户信息解析出来。 1)引入dom4j依赖 <dependency> <groupId>dom4j&...

Dream_it_possible!的博客 741

SAX解析xml文档

package com.zl.xmlsaxrsolve; import java.io.IOException; import java.util.List; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SA...

丢了风筝的线的博客 216
上一篇: JAVA中JButton常用设置
下一篇: jdom解析xml文档
StevenLoveMaggie
博客等级 码龄16年 10粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值