Java解析XML之SAXBuilder用法
SAXBuilder是什么?
SAXBuilder是一个JDOM解析器,能够将路径中xml文件解析到Document对象
SAXBuilder是优缺点?
优点:对内存消耗小,适用于只处理xml文件
缺点:不易编程(需要借助handler来进行解析)很难同时访问一个xml中的多处不同数据
Java中使用SAXBuilder来操作xml格式文件,常用方法:
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
在maven中添加对应jar:
<properties><saxbuilder.version>2.0.5</saxbuilder.version></properties><!-- SAXBuilder --><dependency><groupId>org.jdom</groupId><artifactId>jdom2</artifactId><version>${saxbuilder.version}</version></dependency>
解析XML工具类:
/*** 解析xml,返回第一级元素键值对。如果第一级元素有子节点,则此节点的值是子节点的xml数据。* @param strxml* @return* @throws org.jdom2.JDOMException* @throws IOException*/public static Map doXMLParse(String strxml) throws Exception {if (null == strxml || "".equals(strxml)) {return null;}Map m = new HashMap();InputStream in = StringInputstream(strxml);SAXBuilder builder = new SAXBuilder();Document doc = builder.build(in);Element root = doc.getRootElement();List list = root.getChildren();Iterator it = list.iterator();while (it.hasNext()) {Element e = (Element) it.next();String k = e.getName();String v = "";List children = e.getChildren();if (children.isEmpty()) {v = e.getTextNormalize();} else {v = getChildrenText(children);}m.put(k, v);}//关闭流in.close();return m;}/*** 获取子结点的xml** @param children* @return String*/public static String getChildrenText(List children) {StringBuffer sb = new StringBuffer();if (!children.isEmpty()) {Iterator it = children.iterator();while (it.hasNext()) {Element e = (Element) it.next();String name = e.getName();String value = e.getTextNormalize();List list = e.getChildren();sb.append("<" + name + ">");if (!list.isEmpty()) {sb.append(getChildrenText(list));}sb.append(value);sb.append("</" + name + ">");}}return sb.toString();}public static InputStream StringInputstream(String str) {return new ByteArrayInputStream(str.getBytes());}
Java解析XML之SAXBuilder用法相关推荐
- 详解Java解析XML的四种方法
http://developer.51cto.com 2009-03-31 13:12 cnlw1985 javaeye 我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
http://blog.csdn.net/smcwwh/article/details/7183869 关键字:Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath ...
- java解析xml的几种方式
java解析xml的几种方式 博客分类: java基础备忘-好记性不然烂笔头 XMLJava应用服务器数据结构编程 第一种:DOM. DOM的全称是Document Object Model,也即文 ...
- JAVA解析xml的五种方式比较
1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取和操作文档的任意部分,是W3C的官方标准[优点]①允许应用 ...
- java解析xml的三种方法
java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax;import org.xml.sax.Attributes; import org.xml.sax.SAXEx ...
- xml教程之java解析xml文档
1.java解析xml文件介绍 XML解析方式分为两种:DOM方式和SAX方式 DOM:Document Object Model,文档对象模型.这种方式是W3C推荐的处理XML的一种方式. SAX: ...
- Java 解析 XML
Java 解析 XML 标签: Java基础 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象 优点 ...
- java解析xml文件
使用java解析xml文件,通过dom4j. 代码如下: package com.java.team; import java.io.File; import java.util.ArrayList; ...
- 在java解析XML写入到数据库中遇到的问题
用java程序解析XML写入到MYSQL中遇到了很多问题. 1,关于XML JAVA解析XML的时候,一定要处理没有读取到XML.读取到XML但是里面的元素节点不存在的问题,不然会出很多问题. 2.数 ...
最新文章
- mysql数据库优化命令_MySQL数据库优化总结
- Cmake软件编译opencv报错,CMake Warning at cmake/OpenCVDownload.cmake:193 (message): FFMPEG: Download...
- 智能家居隐私问题再遭热议:涉案设备中的数据究竟受不受保护?
- discuz x3插件开发傻瓜图文教程,用demo说话
- Left 4 Dead升级补丁总汇(3663-3986)
- ifconfig命令无法找到,提示bash: ifconfig: command not found
- 批处理:修改COM端口号
- 基于机器视觉的IC表面字符检测
- 计算机毕业设计ssm物业管理系统
- Appium原理总结
- 指挥调度中心大屏幕用液晶拼接屏还是DLP大屏?
- 叒一次算法作业hhhhhhhh
- 目标检测综述(二:古典方法对比现代方式以及目标检测算法相关概述)
- android img 文件解包
- java中OOP的概念之我见
- Crack:Aspose.Slides for .NET 22.12.x
- Java程序朗读文字的实现,jacob.jar
- SqlServer中with(nolock)详解
- Webrtc Native C++在root模式下启用PulseAudio,音频采集替换为ALSA模式
- Tomcat、Servlet
热门文章
- maven学习记录:maven工具栏解析
- Win10非分页缓冲池过大
- 深度 Windows Vista Ultimate GDH 精简CD 1.0 简体中文版
- inside sql server 2008 - logical query processing
- 苹果怎么没有4g信号还无服务器,不显示4g信号怎么回事?苹果手机不显示4g信号的解决方法...
- 【记录用python做毕业设计-游戏后台管理系统的整体流程】-持续更新中
- 《Excel公式与函数实战应用》
- 职场篇(二):明哥教你混职场
- (转)如何根据RGB值来判断这是种什么颜色?
- 3.4.1 3.3.1 3.3.2 企业版/集团版/旗舰版 框架源码 大屏设计 大屏源码 JNPF快速开发平台