- 浏览: 224226 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
蓝aiq冰:
这个是在哪个包下面的啊,Maven Dependencies里 ...
geronimo-javamail_1.4_spec-1.3.jar与mail.jar 冲突解决办法 -
xuliuliu:
为什么宽度为0的时候进度条不走呢
进度条 -
songrubo:
[b][color=brown][color=yellow] ...
XSD、XSLT、DOM4J解析XML -
aguai0:
想用一下,但是有点看不懂
SQL查询语句:将一列中多个不同的值放入一行的一个单元格里 -
vishare:
非常有用,谢谢
oracle 日期 查询
- package com.xml.parseXml;
- import java.io.InputStream;
- import javax.xml.stream.XMLEventReader;
- import javax.xml.stream.XMLInputFactory;
- import javax.xml.stream.events.StartElement;
- import javax.xml.stream.events.XMLEvent;
- import com.xml.bean.Address;
- import com.xml.bean.ReadXmlFileStream;
- public class StAXParseXml {
- private static Address address = new Address();
- public static void main(String[] args) {
- long lasting = System.currentTimeMillis();
- try {
- InputStream in = ReadXmlFileStream.getXmlFileStream();
- XMLInputFactory xmlif = XMLInputFactory.newInstance();
- // 用于解析 XML 事件的顶层接口
- XMLEventReader reader = xmlif.createXMLEventReader(in);
- // 处理标记事件的基础事件接口
- XMLEvent event = null;
- while (reader.hasNext()) {
- event = reader.nextEvent();
- if (event.isStartElement()) { // 起始元素
- StartElement startElt = event.asStartElement();
- if (startElt.getName().getLocalPart().equals("no")) {
- address.setNo(reader.getElementText());
- } else if (startElt.getName().getLocalPart().equals("addr")) {
- address.setAddr(reader.getElementText());
- System.out.println(address);
- }
- } else if (event.isCharacters()) { // 文本内容
- // 相邻标记之间都是文本内容
- System.out.println("解析的是文本内容:"
- + event.asCharacters().getData());
- } else if (event.isEndElement()) { // 结束元素
- System.out.println("解析的是结束标记:"
- + event.asEndElement().getName());
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- System.out.println("运行时间:" + (System.currentTimeMillis() - lasting)
- + " 毫秒");
- }
- }
- package com.xml.parseXml;
- import java.io.InputStream;
- import javax.xml.stream.XMLEventReader;
- import javax.xml.stream.XMLInputFactory;
- import javax.xml.stream.events.StartElement;
- import javax.xml.stream.events.XMLEvent;
- import com.xml.bean.Address;
- import com.xml.bean.ReadXmlFileStream;
- public class StAXParseXml {
- private static Address address = new Address();
- public static void main(String[] args) {
- long lasting = System.currentTimeMillis();
- try {
- InputStream in = ReadXmlFileStream.getXmlFileStream();
- XMLInputFactory xmlif = XMLInputFactory.newInstance();
- // 用于解析 XML 事件的顶层接口
- XMLEventReader reader = xmlif.createXMLEventReader(in);
- // 处理标记事件的基础事件接口
- XMLEvent event = null;
- while (reader.hasNext()) {
- event = reader.nextEvent();
- if (event.isStartElement()) { // 起始元素
- StartElement startElt = event.asStartElement();
- if (startElt.getName().getLocalPart().equals("no")) {
- address.setNo(reader.getElementText());
- } else if (startElt.getName().getLocalPart().equals("addr")) {
- address.setAddr(reader.getElementText());
- System.out.println(address);
- }
- } else if (event.isCharacters()) { // 文本内容
- // 相邻标记之间都是文本内容
- System.out.println("解析的是文本内容:"
- + event.asCharacters().getData());
- } else if (event.isEndElement()) { // 结束元素
- System.out.println("解析的是结束标记:"
- + event.asEndElement().getName());
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- System.out.println("运行时间:" + (System.currentTimeMillis() - lasting)
- + " 毫秒");
- }
- }
package com.xml.parseXml; import java.io.InputStream; import javax.xml.stream.XMLEventReader; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.events.StartElement; import javax.xml.stream.events.XMLEvent; import com.xml.bean.Address; import com.xml.bean.ReadXmlFileStream; public class StAXParseXml { private static Address address = new Address(); public static void main(String[] args) { long lasting = System.currentTimeMillis(); try { InputStream in = ReadXmlFileStream.getXmlFileStream(); XMLInputFactory xmlif = XMLInputFactory.newInstance(); // 用于解析 XML 事件的顶层接口 XMLEventReader reader = xmlif.createXMLEventReader(in); // 处理标记事件的基础事件接口 XMLEvent event = null; while (reader.hasNext()) { event = reader.nextEvent(); if (event.isStartElement()) { // 起始元素 StartElement startElt = event.asStartElement(); if (startElt.getName().getLocalPart().equals("no")) { address.setNo(reader.getElementText()); } else if (startElt.getName().getLocalPart().equals("addr")) { address.setAddr(reader.getElementText()); System.out.println(address); } } else if (event.isCharacters()) { // 文本内容 // 相邻标记之间都是文本内容 System.out.println("解析的是文本内容:" + event.asCharacters().getData()); } else if (event.isEndElement()) { // 结束元素 System.out.println("解析的是结束标记:" + event.asEndElement().getName()); } } } catch (Exception e) { e.printStackTrace(); } System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) + " 毫秒"); } }
依赖的类:
1.Address .java
- package com.xml.bean;
- public class Address {
- private String no;
- private String addr;
- /**
- * @return the no
- */
- public String getNo() {
- return no;
- }
- /**
- * @param no the no to set
- */
- public void setNo(String no) {
- this.no = no;
- }
- /**
- * @return the addr
- */
- public String getAddr() {
- return addr;
- }
- /**
- * @param addr the addr to set
- */
- public void setAddr(String addr) {
- this.addr = addr;
- }
- @Override
- public String toString() {
- return "编号:" + this.no + ",地址:" + this.addr;
- }
- }
- package com.xml.bean;
- public class Address {
- private String no;
- private String addr;
- /**
- * @return the no
- */
- public String getNo() {
- return no;
- }
- /**
- * @param no the no to set
- */
- public void setNo(String no) {
- this.no = no;
- }
- /**
- * @return the addr
- */
- public String getAddr() {
- return addr;
- }
- /**
- * @param addr the addr to set
- */
- public void setAddr(String addr) {
- this.addr = addr;
- }
- @Override
- public String toString() {
- return "编号:" + this.no + ",地址:" + this.addr;
- }
- }
package com.xml.bean; public class Address { private String no; private String addr; /** * @return the no */ public String getNo() { return no; } /** * @param no the no to set */ public void setNo(String no) { this.no = no; } /** * @return the addr */ public String getAddr() { return addr; } /** * @param addr the addr to set */ public void setAddr(String addr) { this.addr = addr; } @Override public String toString() { return "编号:" + this.no + ",地址:" + this.addr; } }
2.ReadXmlFileStream .java
- /**
- *
- */
- package com.xml.bean;
- import java.io.InputStream;
- public class ReadXmlFileStream {
- private static final String XML_FILE = "com/xml/bean/addresses.xml";
- public static InputStream getXmlFileStream() {
- return Thread.currentThread().getContextClassLoader()
- .getResourceAsStream(XML_FILE);
- }
- }
- /**
- *
- */
- package com.xml.bean;
- import java.io.InputStream;
- public class ReadXmlFileStream {
- private static final String XML_FILE = "com/xml/bean/addresses.xml";
- public static InputStream getXmlFileStream() {
- return Thread.currentThread().getContextClassLoader()
- .getResourceAsStream(XML_FILE);
- }
- }
/** * */ package com.xml.bean; import java.io.InputStream; public class ReadXmlFileStream { private static final String XML_FILE = "com/xml/bean/addresses.xml"; public static InputStream getXmlFileStream() { return Thread.currentThread().getContextClassLoader() .getResourceAsStream(XML_FILE); } }
被解析的XML结构:
addresses.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <addresses>
- <value>
- <no>A100</no>
- <addr>广州天河区天河路</addr>
- </value>
- <value>
- <no>A101</no>
- <addr>广州天河区五山路</addr>
- </value>
- </addresses>
- <?xml version="1.0" encoding="UTF-8"?>
- <addresses>
- <value>
- <no>A100</no>
- <addr>广州天河区天河路</addr>
- </value>
- <value>
- <no>A101</no>
- <addr>广州天河区五山路</addr>
- </value>
- </addresses>
发表评论
-
mysql 5.7 zip版安装
2016-12-29 22:39 8050、下载并解压zip版mysql 1、添加环境变量path ... -
My97DatePicker时间控件使用
2014-09-04 14:44 873My97DatePicker时间控件使用 -
java 自定义信息 生成验证码
2013-10-31 19:26 907java 自定义信息 生成验证码 页面显示方式:查 ... -
图片 Base64 格式 字符串转换
2013-10-14 15:28 13056//Java 部分 package com.zht; ... -
java 通过调用JDBC连接Oracle;执行SQL*PlUS 导入sql脚本
2013-03-06 23:51 6923package com.zht; import java. ... -
Hibernate、Spring、Struts、DWR 配置 复习学习
2011-10-05 13:24 1183Hibernate、Spring、Struts、DWR ... -
dwr 前台传递与接收TimesTamp时间戳类型数据
2011-08-10 22:18 45771/model//-----定义model class,其中包 ... -
前台向DWR传递map/list,返回list/map到前台操作方法
2011-08-10 00:37 3546向DWR传递map/list,返回list/map操作方法 ... -
XSD、XSLT、DOM4J解析XML
2011-06-20 17:05 4214xml文件 000.xml <?xml version ... -
geronimo-javamail_1.4_spec-1.3.jar与mail.jar 冲突解决办法
2010-11-10 17:33 6216geronimo-javamail_1.4_spec-1.3. ... -
java 正则表达式 搜索文件
2010-09-26 15:36 1604import java.util.ArrayList;impo ... -
路径的获得方法
2010-08-17 18:11 1135获取路径的方法: System.out.print ... -
Tomcat内存溢出问题的处理方法
2010-07-29 08:43 1092当Tomcat启动动时若发生如下问题时(上网参考) ... -
整合 Spring 和 Strust2 一起工作
2010-07-14 09:55 840关键字: struts2 spring 在Struts2中 ... -
JDOM解析XML
2010-06-05 17:19 941Java代码 package com.xm ... -
DOM4J解析XML
2010-06-05 17:18 1094Java代码 package com.xm ... -
SAX解析XML
2010-06-05 17:18 1558Java代码 package com.xm ... -
DOM解析XML
2010-06-05 17:15 1021Java代码 package com.xm ... -
JAVA解析XML的方式DOM、SAX、DOM4J、JDOM、StAX之详解与比较
2010-06-05 17:10 15631.各种方式的详解 1)DOM ... -
JAVA m和n的最大公约数和最小公倍数
2009-09-28 20:07 3769public class Test { p ...
相关推荐
### Java StAX解析XML详解 #### 一、简介与背景 在Java开发中,XML是一种常用的数据交换格式,尤其在处理配置文件或与其他系统进行数据交互时。Java提供了多种解析XML的技术,包括DOM(Document Object Model)、...
STAX解析XML的过程是通过事件驱动的,即在解析XML时,解析器会触发一系列事件,如遇到元素开始、元素结束、文本节点等,开发者注册监听这些事件,然后在事件触发时进行相应的处理。相比于DOM(Document Object ...
使用StAX解析XML文档则需要借助`XMLInputFactory`和`XMLStreamReader`类完成。下面是一个简单的例子: ```java XMLInputFactory factory = XMLInputFactory.newInstance(); XMLStreamReader reader = factory....
Axis2在性能上的提升也得益于采用StAX解析XML。 总之,StAX提供了一种高效、低内存开销的方式来处理XML,尤其适用于处理大型XML文档和需要高性能的应用场景。通过组装和解析XML,开发人员可以灵活地在应用程序之间...
这个实例展示了如何使用StAX解析XML并将其数据写入目标系统。 总结来说,Kettle的XML Input Stream (StAX) 提供了一种高效、内存友好的方式来处理XML数据。通过合理配置,我们可以轻松地从XML文件中提取数据,然后...
kettle 解析xml数据,xml多层分组嵌套,xml stax方法,完整解析案例使用(包含xml文件以及ktr文件)。ETL大数据迁移,数据清洗。XML Input Stream (StAX) 方法
以下是一个使用StAX解析XML的例子: ```java import java.io.FileInputStream; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamReader;...
1. **StAX解析流程**: - 创建XMLInputFactory实例,这是解析XML的起点。 - 使用XMLInputFactory创建XMLStreamReader,这是读取XML事件的对象。 - 通过XMLStreamReader逐个处理事件,如StartElement、EndElement...
2. 使用StAX解析XML: StAX允许程序以迭代方式处理XML,可以逐个读取事件,如下所示: ```java import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamConstants; import javax.xml.stream....
以下是一个使用StAX解析XML的示例: ```java import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamReader; import java.io.File; public ...
与上一个版本一起使用可以可以起到提高效率的目的。本人解析xml的真实文档
- 如何使用DOM、SAX或StAX解析XML - 如何处理XML中的命名空间 - 如何在Java对象和XML之间进行映射(如JAXB) 在实践中,你可能还会遇到编码问题、XML验证(使用DTD或XSD)、XPath用于查询XML数据,以及XML的序列化...
以下是一个使用StAX解析XML的例子: ```java import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamReader; import java.io.FileInputStream;...
以上三种方法分别展示了DOM、SAX和StAX解析XML文件的基本用法。根据实际需求和文件大小,你可以选择最适合的解析方式。在处理XML文件时,务必注意处理异常,确保代码的健壮性。此外,还可以使用第三方库,如JAXB...
5. StAX解析XML: ```java import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamReader; import java.io.FileInputStream; XMLInputFactory ...
总结,学习XML与Java解析XML,你需要掌握XML的基本语法和结构,以及在Java中使用DOM、SAX和StAX解析XML的方法。此外,XPath和XSLT是处理和转换XML的重要工具,也值得深入学习。在实际项目中,根据需求和性能考虑选择...
Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...
#### 四、StAX解析XML文档 ##### 1. StAX简介 StAX(Streaming API for XML)是一种新的基于流的XML解析API,它结合了SAX和DOM的优点,提供了一种高效的XML处理方式。与SAX相比,StAX提供了更多的控制机制;与DOM...
以下是使用SAX和StAX解析XML的基本步骤: 1. **SAX解析**: - 创建`DefaultHandler`的子类并重写关键方法,如`startElement`,`endElement`和`characters`。 - 使用`SAXParserFactory`创建`SAXParser`实例。 - ...
本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过Document对象表示整个XML文档,Element代表XML元素,Attribute表示元素属性,Text表示元素内的文本内容。这些类构成了...