一.概念
SAX (Simple API for XML),基于事件的XML简单API,也是解析XML文档的两种API之一。
二.sax解析
1.使用到的包:
javax.xml.parsers:解析器工厂工具
org.xml.sax :提供了核心 SAX API
例如:
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
2.解析流程
首先构建我们的解析器,需要继承org.xml.sax.helpers.DefaultHandler类,覆盖其中的方法。接着获取SAX工厂对象,从此工厂中获取SAX解析,将解析器和解析对象(xml文件)联系起来,开始解析,最后获取解析成功后的属性即可。
补充说明:
在对读入的xml文件进行解析时,当读到相应的内容,会抛出对应的事件,由ContentHandler调用其相应的方法进行响应。DefaultHandler实现了此接口ContentHandler,所以DefaultHandler才作为SAX2 事件处理程序的默认基类。
常用到的方法:
(1)characters(char[] ch, int start, int length)
接收元素中字符数据的通知,可以在此方法中,将<xxx></xxx>之间的值加入到属性中。
(2)startElement(String uri, String localName, String qName, Attributes attributes)
接收元素开始的通知,参数中的uri就是名域, localName是标签名,qName是标签的修饰前缀,attributes是这个标签所包含的属性列表。
(3)endElement(String uri, String localName, String qName)
接收元素结束的通知。
3.导出EXCEL
jxl.jar :提供了java操作excel表格的工具类库
例如:
import jxl.*;
import jxl.write.*;
import jxl.write.Number;
代码参考:
WritableWorkbook plan = Workbook.createWorkbook(new File("plan.xls"));
//创建第一分页,从0开始
WritableSheet sheet = book.createSheet("name1", 0);
//参数分别为:列,行,值,此表示填充第1列第1行的单元格,下标从0开始
sheet.addCell(new Label(0, 0, "TYPE_ID"));
...
plan.write();
plan.close();
4. 实例代码
参考附件。
分享到:
相关推荐
3. StAX解析:使用`XMLInputFactory`创建`XMLStreamReader`,然后逐个读取XML事件,如`StartElement`, `Characters`, `EndElement`等。StAX允许程序员控制解析过程,适合流式处理和低内存应用。 对于导出XML文件,...
SAX解析器在读取XML时触发事件,如开始元素、结束元素等。 4. **StAX(Streaming API for XML)**:与SAX类似,StAX也是基于流的解析,但提供了一种更灵活的编程模型,允许开发者通过迭代器主动推进解析过程。 三...
总结来说,从XML文件读取数据并导出到Excel文件,首先需要选择合适的XML解析器,如SAX,因为它适用于处理大型XML文件。然后,利用SAX解析XML,将解析到的数据存储在适当的数据结构中,如列表或DataFrame。最后,通过...
在Java中,`Apache POI`库提供了类似的接口,可以读取XML数据并创建Excel工作簿: ```java import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.w3c.dom.Document; import javax.xml.parsers....
SAX解析器则是事件驱动的,逐行读取XML,适合处理大型文件。 3. **DOM解析**:使用DOM解析,我们可以获取XML文档的节点信息,包括根节点、子节点、属性等,并能对它们进行操作。例如,通过`创建XML文档对象`、`加载...
标题“使用Sax方法读XML文档:SaxReaderXML.zip”指出,这个压缩包包含了一个关于如何使用SAX解析器来读取XML文档的示例。SAX解析器的工作方式是,当解析到XML文档中的某个元素、属性或文本时,会触发相应的事件,...
1. **解析XML文件**:使用Java的DOM(Document Object Model)、SAX(Simple API for XML)或StaX(Streaming API for XML)等解析器读取XML文件并获取数据。DOM将整个XML文档加载到内存中,适合小文件;SAX和StaX则...
而对于简单的XML导出,DOM可能过于资源密集,而SAX或StAX(Streaming API for XML)更为高效。记住,处理这些文件时,始终要关注性能优化,尤其是在大数据量的情况下。 以上就是关于Java如何导出Excel和XML的基本...
此外,对于大型XML文件,可能需要优化处理流程以提高性能,如分块读取XML、异步处理等。 9. **用户体验**:在Web应用中,用户界面设计和反馈机制也很重要。用户应能方便地上传XML文件,查看转换进度,并能下载生成...
总的来说,Java通过XML导出Word和Excel是一种灵活且可扩展的方法,它允许开发人员以结构化的方式处理数据,便于数据交换和跨平台兼容。通过Apache POI和其他相关库,开发者能够高效地生成和导出符合特定需求的文档。
2. **CSV转换**:Excel文件可以被导出为CSV(逗号分隔值)格式,这是一种通用的数据交换格式,可被许多编程语言轻松处理。 3. **命令行工具**:如`xlsx2csv`允许通过命令行将Excel文件转换为CSV。 **XML解析** XML...
2. **XML解析**:使用StAX或类似的API读取XML文件,逐个处理数据项,减少内存占用。 3. **数据处理**:根据业务需求,对解析出来的数据进行验证、计算、过滤等操作。 4. **数据写入Excel**:创建新的Excel工作表,...
1. **解析XML文件**:Java提供了多种解析器来读取XML文件,如DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。DOM解析器会将整个XML文档加载到内存中,适合小型文件;SAX...
1. **解析XML**:使用Java的DOM或SAX解析器读取XML数据,将其转化为jGraphX可以理解的对象模型。 2. **创建图形模型**:根据解析的XML,用jGraphX创建相应的GraphModel,这个模型包含了图形的所有元素(节点、边、...
SAX解析的核心思想是读取XML文档时,每当遇到一个元素、属性、文本等结构,都会触发一个相应的事件,然后通过回调函数来处理这些事件。这种方式非常适合处理大型XML文档,因为它不需要一次性将整个文档加载到内存中...
相比之下,SAX解析器采用事件驱动的方式,逐行读取XML文档,当遇到元素、属性或其他XML结构时触发相应的事件。这种方式对内存的要求较低,适合处理大型XML文件。但是,由于数据不是以对象形式存储,处理起来可能稍显...
XML解析器读取XML文档,并将其转换为易于处理的数据结构,如DOM(Document Object Model)或SAX(Simple API for XML)。在这个应用中,可能采用了MSXML2库,这是Microsoft提供的一个用于解析和操作XML的组件。 2. ...
在Java中解析这些文件,我们可以利用XML解析库,如DOM(Document Object Model)、SAX(Simple API for XML)或者JAXB(Java Architecture for XML Binding)。DOM解析器会将整个XML文件加载到内存中,形成一个树形...
本案例中,我们关注的是使用NXopen工具包进行的二次开发,目的是将读取XML文件的函数封装到一个动态链接库(DLL)中,以便于其他程序便捷地调用。下面将详细介绍这一过程及其相关知识点。 首先,我们需要了解XML...