之前一篇
借助DOM4J完成了解析工作,下面采用原始的DOM方式完成相同的工作,如果运行不了,你可能还需要导入xalan.jar包。
import java.io.File;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.xpath.XPathAPI;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DomTest {
public static void main(String[] args) throws Exception {
DocumentBuilderFactory domFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder domBuilder = domFactory.newDocumentBuilder();
Document doc = domBuilder.parse(new File("I:\\test2.xml"));
//XPathAPI需要xalan.jar支持
NodeList recordlist=XPathAPI.selectNodeList(doc, "records/record");
PrintWriter pWriter=new PrintWriter("I:\\hello2.csv");
String tempString;
NodeList phyNodeList=XPathAPI.selectNodeList(doc, "records/record[1]/field/@lname");
for (int i = 0; i < phyNodeList.getLength(); i++) {
tempString=new String(phyNodeList.item(i).getNodeValue().getBytes("UTF-8"),"UTF-8");
if (i==phyNodeList.getLength()-1) {
pWriter.print(tempString);
}else {
pWriter.print(tempString+",");
}
}
pWriter.println();
for(int i=0;i<recordlist.getLength();i++){
NodeList fieldlist=XPathAPI.selectNodeList(recordlist.item(i), "field");
for (int j = 0; j < fieldlist.getLength(); j++) {
Element element=(Element)fieldlist.item(j);
tempString=new String (element.getFirstChild().getNodeValue().getBytes("UTF-8"),"UTF-8");
if (j==fieldlist.getLength()-1) {
pWriter.print(tempString);
}else
pWriter.print(tempString+",");
}
pWriter.println();
}
pWriter.close();
}
}
运行后同样达到预期效果:
分享到:
相关推荐
2. **解析XML文件**:使用XML解析器,如Python的`ElementTree`库,Java的`JDOM`或`DOM4J`,或者JavaScript的`DOMParser`,来读取和解析XML文件。解析器能够将XML文档转化为可操作的对象结构。 3. **构建CSV数据模型...
**Dom4j详解:解析XML的强大工具** Dom4j是一个开放源码的Java库,它提供了灵活且功能强大的API来处理XML文档。在Java世界中,XML作为一种数据交换格式广泛应用于各种应用程序,如配置文件、数据传输、文档存储等。...
在本教程中,我们将深入探讨如何使用DOM4J来解析XML文件,并创建一个无敌连环解析工具类。 首先,我们需要了解XML的基本概念。XML(可扩展标记语言)是一种标记语言,常用于数据交换和存储。它的结构化特性使其非常...
本文将深入探讨如何使用自定义工具解析XML文件,并将其内容保存到内存,最终输出为文本文件。 首先,理解XML的基本结构至关重要。XML文件由一系列元素构成,每个元素由开始标签、元素内容和结束标签组成。例如,`...
使用`java.util.Scanner`或正则表达式解析CSV,然后使用DOM(文档对象模型)或SAX(简单API for XML)创建XML文档。 以下是一个简化的自定义实现过程: 1. 读取CSV文件:使用`BufferedReader`逐行读取文件,将每行...
1. **DOM解析**:如Python的xml.dom.minidom库,它构建了一个树形结构,允许遍历整个XML文档。 2. **SAX解析**:如Python的xml.sax模块,它只在遇到元素、属性等时触发事件,减少内存占用。 3. **XPath和XSLT**:...
1. **解析XML文档**:DOM4J支持SAX和DOM两种解析方式。SAX是事件驱动的解析器,适用于处理大型XML文件;DOM则是将整个XML文件加载到内存中的树形结构,便于进行随机访问。 2. **创建XML文档**:DOM4J提供了API来...
在"cgi.tar.gz_CGI解析xml"这个文件中,我们关注的是如何通过CGI来解析XML文件。 XML文件结构清晰,具有自描述性,广泛应用于数据交换、配置文件、文档存储等领域。然而,浏览器默认并不直接解析XML,这就需要借助...
在XML解析方面,DOM4J提供了两种主要的解析方式:SAX(Simple API for XML)和DOM。SAX是一种事件驱动的解析方式,适用于处理大型XML文件,因为它不需要将整个文档加载到内存中。DOM则是一种树形结构的解析方式,...
4. **转换和序列化**:DOM4J不仅可以解析XML,还可以将XML文档转换为其他格式,如Java对象、HTML、CSV等。同时,它也可以将Java对象序列化为XML,实现数据的保存和传输。 5. **扩展性**:DOM4J设计时考虑了扩展性,...
这些库提供了方便的方法来解析XML文档,例如在Python中,`ElementTree`的`parse()`函数可以用于DOM解析,而`xml.sax.parse()`可以用于SAX解析。 在实际应用中,XML解析还包括处理命名空间(Namespaces)、验证XML...
1. **读取和解析XML文档**: 使用`SAXReader`可以从文件中读取XML文档。`SAXReader`使用事件驱动的SAX解析器,效率较高。以下代码展示了如何读取XML文件并获取`Document`对象: ```java public Document readXML...
这些API通常包括解析XML文档、遍历XML树、获取元素属性和文本内容等功能。 3. **内存管理**:Kai库可能采用了流式解析或DOM解析策略。流式解析允许按需处理XML数据,减少内存占用;DOM解析则将整个XML文档加载到...
2. **DOM解析**:DOM4J也提供了DOM解析器,但不同于标准DOM API,DOM4J的DOM模型更加易于使用。 3. **StAX解析**:DOM4J通过Java Streaming API for XML(StAX)提供了流式解析,适合处理连续的XML数据流。 **三、...
XML阅读器是一款专门用于处理XML(eXtensible Markup Language)文件的应用程序,它具备了导入XML文件、解析XML文档并以二维结构显示在列表控件中的功能。XML是一种标记语言,广泛应用于数据交换、配置文件存储等...
1. **XML解析**:工具首先读取XML文件,然后使用Java的DOM解析器(如org.w3c.dom库中的DocumentBuilderFactory和DocumentBuilder)来解析XML文档。DOM解析器将整个XML文件加载到内存中,形成一个可操作的树形结构,...
此外,它还提供了解析XML文档、修改XML结构、转换XML到其他格式(如HTML或CSV)等功能。 在选择XML解析方式时,SAX适合大文件,因为它采用事件驱动,只占用有限的内存;DOM一次性加载整个文档,适用于小文件或需要...
将表格转换为XML,可能需要编写代码来解析表格数据并构建相应的XML结构。Python的xml.etree.ElementTree库或JavaScript的DOM API是实现这一转换的常见选择。 JSON是互联网上最常用的数据交换格式之一,它以键值对的...
将XML转换为CSV,需要解析XML元素,然后按照CSV的格式重新组织数据。这个过程可能涉及到递归遍历XML树、处理嵌套数据以及确定列名。 五、XML到数据库记录转换 XML可以被用来导入或导出数据库记录,如SQL Server的...
2. **SAX解析**: DOM4J也支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文件到内存中。这种方式以事件驱动,逐行读取XML,节省了内存资源。 3. **StAX解析**: StAX提供了另一种...