java中XML格式的字符串4读取方式的简单比较

1.java自带的DOM解析.
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;

public class ReaderXmlForDOM {

public static void main(String args[]) {
String text ="<XML><A>123</A><B>whl123</B><C>亮亮</C><D>1</D><E>1</E><F>165074</F><G>贫穷</G><H>1698.0</H><I>初级士官</I><J>湖南</J><K>常德</K><L>1</L></XML>"

long begin = System.currentTimeMillis();
parse( text );
long after = System.currentTimeMillis();
System.out.println("DOM用时"+(after-begin)+"毫秒");
}

public static void parse(String protocolXML) {

try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder
.parse(new InputSource(new StringReader(protocolXML)));

Element root = doc.getDocumentElement();
NodeList books = root.getChildNodes();
if (books != null) {
for (int i = 0; i < books.getLength(); i++) {
Node book = books.item(i);
System.out.println("节点=" + book.getNodeName() + "\ttext="
+ book.getFirstChild().getNodeValue());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
我当时dom解析用时是个不稳定的值在62-78毫秒之间.
以下的三种方法mian方法里面都是一样的解析那段字符串,记录用时,就不在贴出, 只贴出所用的解析部分
2.java自带的SAX解析.
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class ReaderXmlForSAX {
public static void parse(String protocolXML) {

try {
SAXParserFactory saxfac = SAXParserFactory.newInstance();
SAXParser saxparser = saxfac.newSAXParser();
TestSAX tsax = new TestSAX();
saxparser.parse(new InputSource(new StringReader(protocolXML)),tsax);
} catch (Exception e) {
e.printStackTrace();
}
}
}

class TestSAX extends DefaultHandler{

private StringBuffer buf;
private String str;
public TestSAX(){
super();
}

public void startDocument() throws SAXException{
buf=new StringBuffer();
System.out.println("*******开始解析XML*******");
}

public void endDocument() throws SAXException{
System.out.println("*******XML解析结束*******");
}

public void endElement(String namespaceURI,String localName,String fullName )throws SAXException{
str = buf.toString();
System.out.println("节点="+fullName+"\tvalue="+buf+" 长度="+buf.length());
System.out.println();
buf.delete(0,buf.length());
}

public void characters( char[] chars, int start, int length )throws SAXException{
//将元素内容累加到StringBuffer中
buf.append(chars,start,length);
}
}
SAX用时是62毫秒,最快的.但是需要多写一个类
3.DOM4J解析,需要下载对应的jar包
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class ReaderXmlForDOM4J {
//DOM4j解析XML
public static void parse(String protocolXML) {

try {

Document doc=(Document)DocumentHelper.parseText(protocolXML);
Element books = doc.getRootElement();
System.out.println("根节点"+books.getName());
// Iterator users_subElements = books.elementIterator("UID");//指定获取那个元素
Iterator Elements = books.elementIterator();
while(Elements.hasNext()){
Element user = (Element)Elements.next();
System.out.println("节点"+user.getName()+"\ttext="+user.getText());
List subElements = user.elements();
// List user_subElements = user.elements("username");指定获取那个元素
// System.out.println("size=="+subElements.size());
// for( int i=0;i<subElements.size();i++){
// Element ele = (Element)subElements.get(i);
// System.out.print(ele.getName()+" : "+ele.getText()+" ");
// }
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
DOM4J的用时为140毫秒,慢 并且还需要单独的jar包
4.JDOM解析,需要下载对应的jar包
import java.io.StringReader;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;

public class ReaderXmlForJDOM {
public static void parse(String protocolXML) {
SAXBuilder builder=new SAXBuilder(false);
try {
Document doc = builder.build(new InputSource(new StringReader(protocolXML)));
Element eles = doc.getRootElement(); // 得到根元素
System.out.println("根节点"+eles.getName());

List<Element> list = eles.getChildren(); // 得到元素的集合
//List studentList = students.getChildren("student"); // 得到指定元素(节点)的集合

if( list!=null){
for (int i = 0; i < list.size(); i++) {
Element book = (Element)list.get(i);
System.out.println("节点=" + book.getName() + "\ttext="
+ book.getValue());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
JDOM的用时为125毫秒,比较慢 并且还需要单独的jar包
PyCharm 2023最新版安装配置全攻略(附永久激活教程) 本文详细介绍了PyCharm 2023最新版的安装配置全流程,包括版本选择、初始配置、插件生态、工程模板、调试优化及团队协作等关键步骤。特别针对专业版和社区版的功能差异进行对比,帮助开发者高效搭建Python开发环境,提升编码效率与团队协作能力。 阅读详情

相关推荐

Hi3516CV610 YOLOv8模型转换与部署实战:从源码到板端推理全流程解析

本文详细解析了将YOLOv8模型部署到Hi3516CV610开发板的全流程。内容涵盖从Ubuntu环境搭建、模型获取与验证,到关键的PyTorch模型转换为ONNX格式,并利用海思工具链量化生成板端可执行的.wk文件。最后,指导开发者编写板端C程序,完成视频流处理、NNIE推理及结果后处理,并提供了部署调试与性能优化的实用技巧。

weixin_29215815的博客 268

Java中XML格式的字符串4读取方式的简单比较

Java中XML格式的字符串4读取方式的简单比较 1.java自带的DOM解析. import java.io.StringReader; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Documen...

a944145054的博客 140

模拟电子课设-半导体直流稳压电源的设计和测试

1、学习直流稳压电源的设计方法; 2、研究直流稳压电源的设计方案; 3、掌握直流稳压电路的调试及主要指标的测试方法。二、设计要求和技术指标 1、设计要求1)、设计一个能输出5V-12V连续可调的直流稳压电源,或±12V的直流稳压电源; 2)、根据设计要求和技术指标设计好电路,选好元件及参数,要求绘出原理图,并用Protel 99SE/DXP画出印制板图; 3)、在万能板或面包板上制作一台直流稳压电源; 4)、测量直流稳压电源的稳压系数; 5)、测量直流稳压电源的内阻; 6)、拟定测试方案和设计步

GJZGRB的博客 1970

java xml格式的字符串_Java中XML格式的字符串4读取方式的简单比较

Java中XML格式的字符串4读取方式的简单比较1.java自带的DOM解析.import java.io.StringReader;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;import org.w3c.d...

weixin_33683833的博客 207

Mac用户必看:Parallels Desktop 18.1.1最新破解版安装与优化全攻略(附资源)

本文为Mac用户提供Parallels Desktop 18.1.1的详细安装与优化指南,涵盖虚拟化技术选型、专业级配置流程及性能调优技巧。重点解析Parallels Desktop在图形加速、系统资源调度方面的核心优势,并分享生产力增强技巧与典型应用场景实战方案,帮助用户最大化利用这一高效虚拟化工具。

weixin_29240343的博客 818

S32K344 Bootloader实战:一个按键实现从Boot到App的无缝跳转(附完整代码)

本文详细介绍了基于NXP S32K344微控制器的Bootloader开发实战,重点解析如何通过一个硬件按键实现从Boot到App的可靠跳转。内容涵盖内存分区规划、中断向量表重映射、外设初始状态管理等核心要素,并提供了完整的代码示例和调试技巧,适用于汽车电子和工业控制等高可靠性应用场景。

weixin_29192365的博客 307

java中dom4j读取xml格式字符串

java中dom4j读取xml格式字符串所用到的Jar编写工具类,返回读取结果为map集合 所用到的Jar 这里贴出pom,需要jar文件自行下载或留言我 <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version>

小佳佳K3的博客 1551

【一张图系列】别再混淆了!5分钟搞懂ERP、MES、PLC的职责边界与数据流》

《ERP、MES、PLC系统边界与协作解析》一文清晰阐述了制造业三大核心系统的角色分工与数据流转。文章将ERP比作企业"大脑"负责战略规划,MES作为车间"指挥官"负责执行调度,PLC则是设备"士兵"执行具体操作。通过一张架构图展示了从计划层到控制层的完整信息流:蓝色箭头表示指令下行(ERP→MES→PLC),橙色箭头代表数据上行反馈(PLC→MES→ERP)。文章强调理清系统边界对数字化转型、部门协作和项目实施的关键作用,并预告下期将深入解析ME

「东哥说MES」 专注于MES制造执行系统,为你拆解核心架构、功能模块及与ERP/PLC的集成逻辑。提供从入门到精通的系列干货、精选行业报告与实用工具,构建你的数字化知识体系,关注我,用实战经验照亮你的数字化之路。 970

Java解析XML字符串格式

Java解析XML字符串格式代码示例结果展示 代码示例 public static void main(String[] args) { String parseStr = null; String returnMsg = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+ "<Result xmlns=\"http://www.fiorano.com/fesb/activity/DB

qq_43419105的博客 2563

训练救星!EMA多尺度注意力让YOLOv11轻松攻克自定义数据集不涨点难题

在目标检测模型训练中,自定义数据集不涨点是阻碍算法落地的核心痛点之一。传统训练策略在数据分布特殊、样本量有限的场景下极易陷入收敛停滞,而 EMA(指数移动平均)结合多尺度注意力的方案,在自定义数据集上实现mAP 提升 6.5%,同时让训练曲线从“平缓停滞”转为“持续攀升”,彻底解决创新点在自有数据上的性能瓶颈。本教程将带你从原理到实践,通过 EMA 多尺度注意力为 YOLOv11 注入训练稳定性,让你的自定义数据集模型训练实现质的飞跃。EMA 衰减率:小样本数据集建议将decay。

FJN110的博客 160

【3天快速入门WPF】11-附加属性

创建一个静态类,用于定义附加属性。使用方法注册附加属性。提供Get和Set方法来获取和设置附加属性的值。通过以上步骤,我们可以在WPF中轻松实现和使用附加属性。附加属性的主要用途包括为控件添加自定义行为、控制布局信息(如Grid.Row和)以及实现动态样式。

Zy100Papa的博客 679

Java 格式化xml字符串

Java 格式化xml字符串

Dior_DNA的博客 6283

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

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

JAVA解析XML格式字符串

import java.io.IOException; import java.io.StringReader; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.Namespace; im

野狼e族 的博客 3785

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java xml格式解析_Java中读取XML文件,生成XML格式的字符串并解析这个字符串

由于最近要用的是XML格式的字符串,而不用写到文件中,所以对原始代码进行了修改如下:要读的xml文件李华姓名>14年龄>学生>张三姓名>16年龄>学生>学生花名册>import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.InputStre...

weixin_29258297的博客 367

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Java解析或生成xml字符串的各种方法,一文都告诉你

目录前言XML字符串一、用DOM4J解析xml字符串DOM4J生成xml格式的字符串二、使用JDK的org.w3c.dom.Document解析xml字符串org.w3c.dom.Document生成xml字符串org.w3c.dom的接口说明 前言 我们在对接接口的时候,可能接口返回的是xml格式的字符串,那么这时候我们就需要对xml格式的字符串进行解析来获取结果,同时有时候我们请求接口的入参也需要是xml格式的字符串,这都需要我们对xml字符串进行处理,下面我们就来看看解析xml的常用方法。 XML字符

qq_36551991的博客 1万+

java格式化xml字符串_XML串的格式化输出

如果我们格式化一个xml文件话,我们可能使用下面的方法:try{SAXReadersaxReader=newSAXReader();注释:先读入一个文件流Documentdoc=saxReader.read(newFileInputStream(newFile(filePath)));注释:创建输出格式OutputFormatformat=OutputFormat.creat...

weixin_30989967的博客 1665

java xml字符串转map_xml格式字符串转为Map

import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;/*** XML格式字符串转换为Map* @作者 廖正瀚* @日期 2017年12月1日* @param xml* @param charset* @return* @...

weixin_39554170的博客 1715

Java解析XML的4大方式

文章目录一、什么是XML?二、XML的优势(一)、XML的特性1、XML具有平台无关性2、XML具有自我描述性(二)、XML的用处1、网络数据传输2、 数据存储3、配置文件(最常用)三、XML的语法格式(一)、XML文档声明(二)、一个XML文档中有且且仅允许有一个根标记(三)、标记名称命名规范(四)、含有属性的XML标记案例(五)、注释(六)、CDATA四、4种解析方式(一)、SAX解析1、优点2、缺点(二)、DOM解析1、优点2、缺点(三)、JDOM解析(四)、DOM4J解析五、DOM4J解析本地XM.

haohaoxuexiyai的博客 1841

java读取xml的比较好的实践

业务开发过程中,总免不了要读取xml文件内容,有的代码写的很优雅,有的就很繁琐,没有对比就没有伤害,接下来就分别探究下这两种方式的区别,希望能帮助到你。

2023年目标:“禅师与青年的技术尬聊”系列更新100篇 627

JAVA读取XML并打印

在G盘下新建XML文档:person.xml,XML代码: <?xml version="1.0" encoding="utf-8"?> <students> <student id="1"> <name>a</name> <sex>男</sex> ...

ajq1979的博客 545

java 读取 xml 文件_java解析Xml格式的字符串

最近在工作中,需要调别的接口,接口返回的是一个字符串,而且内容是xml格式的,结果在解析json的时候报错,最终修改了接口的返回方式,以Map返回,才得以接收到这个xml的字符串,然后通过dom4j来解析这个xml字符串。xml格式如图:解析代码如下:/*** dom4j解析Xml* @param xml*/public void getXmlAttribute(String xml) {Docu...

weixin_39724793的博客 704

Java解析xml格式数据

package com.cn; import java.io.IOException; import java.io.StringReader; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.

Dabria_ly的博客 3573

java xml格式化_java xml 格式化输出

java 格式化字符串要用的dom4j1.6.1这个jar包下面代码分别是直接输入字符串的格式化输出和从文件中读取的格式化输出importjava.io.FileReader;importjava.io.IOException;importjava.io.StringReader;importjava.io.StringWriter;importorg.dom4j.Document;im...

weixin_33125137的博客 1035
上一篇: 导出EXCEL 表单设置
下一篇: web视频播放空间 flowplayer-3.2.16
nddjava
博客等级 码龄16年 15粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值