一.常用解析XML方法:
1. Xerces-J:
http://www.apache.org/dist/xml/xerces-j/
one of the most commonly used XML parser, from the Apache Project.
http://xml.apache.org/xerces-j/index.html
Xerces是由Apache组织所推动的一项XML文档解析开源项目,它目前有多种语言版本包括JAVA、C++、PERL、COM等。
2. JDom
JDOM是一种面向Java的读、写和操作XML文档的API。JDOM 与现行的SAX 和DOM标准兼容,为Java 程序员提供了一个简单、轻量的XML文档操作
方法。由于JDOM是专门为Java 程序员开发的,所以采用许多Java语言的优秀特性,比如方法重载、集合(Collections)和类映射(Reflection)
。
3. dom4j 这是很常用的。
Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。
二.下面以dom4j为例:
package xml;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class TestXML ...{
//创建XML文档
public static Document createDocument() ...{
Document document = DocumentHelper.createDocument();
Element root = document.addElement( "root" );
Element author1 = root.addElement( "author" )
.addAttribute( "name", "James" )
.addAttribute( "location", "UK" )
.addText( "James Strachan" );
Element author2 = root.addElement( "author" )
.addAttribute( "name", "Bob" )
.addAttribute( "location", "US" )
.addText( "Bob McWhirter" );
return document;
}
//将文档内容输出到文件或控制台
public static void write(Document document) throws IOException ...{
// lets write to a file
XMLWriter writer = new XMLWriter(
new FileWriter( "output.xml" )
);
writer.write( document );
writer.close();
// Pretty print the document to System.out
OutputFormat format = OutputFormat.createPrettyPrint();
writer = new XMLWriter( System.out, format );
writer.write( document );
// Compact format to System.out
format = OutputFormat.createCompactFormat();
writer = new XMLWriter( System.out, format );
writer.write( document );
}
//解析XML文件成Document ,url为文件路径
public static Document parse(String url) throws DocumentException ...{
SAXReader reader = new SAXReader();
Document document = reader.read(url);
return document;
}
//read Docment内容
public static void read(Document document) throws DocumentException ...{
Element root = document.getRootElement();
// 从XML的根结点开始遍历
for ( Iterator i = root.elementIterator(); i.hasNext(); ) ...{
Element element = (Element) i.next();
System.out.println(element.getName()+":"+element.getText());
}
/**//* // iterate through child elements of root with element name "foo"
for ( Iterator i = root.elementIterator( "foo" ); i.hasNext(); ) {
Element foo = (Element) i.next();
// do something
}
// iterate through attributes of root
for ( Iterator i = root.attributeIterator(); i.hasNext(); ) {
Attribute attribute = (Attribute) i.next();
// do something
}*/
}
//将document转化为String
public static String XmlToString(Document document)...{
return document.asXML();
}
//将document转化为String
public static Document StringToDocument(String text)...{
try ...{
return DocumentHelper.parseText(text);
} catch (DocumentException e) ...{
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public static void main(String[] args) throws IOException, DocumentException ...{
// write(parse("E:\WebService\XFire\example\XFire\output.xml"));
String str="<?xml version='1.0' encoding='utf-16'?> "+
"<CurrentWeather>"+
"<Location>Shanghai / Hongqiao, China (ZSSS) 31-10N 121-26E 3M</Location>"+
"<Time>Aug 22, 2007 - 09:00 PM EDT / 2007.08.23 0100 UTC</Time>"+
"<Wind> from the ESE (110 degrees) at 7 MPH (6 KT) (direction variable):0</Wind>"+
"<Visibility> 4 mile(s):0</Visibility>"+
"<SkyConditions> mostly clear</SkyConditions>"+
"<Temperature> 87 F (31 C)</Temperature>"+
"<DewPoint> 78 F (26 C)</DewPoint>"+
"<RelativeHumidity> 74%</RelativeHumidity>"+
"<Pressure> 29.77 in. Hg (1008 hPa)</Pressure>"+
"<Status>Success</Status>"+
"</CurrentWeather>";
write(StringToDocument(str));
}
}
分享到:
相关推荐
标题中的"DOM_XML.rar"可能是一个包含DOM解析XML相关示例的压缩文件,"DOM_dom xml_dom xml java_dom解析xml_java解析xml"这部分描述了文件的主要内容,即关于DOM(Document Object Model)在XML解析中的应用,特别...
1. **XML解析**:DOM4J支持两种解析XML文档的方式:SAX(Simple API for XML)和DOM(Document Object Model)。SAX是事件驱动的,逐行解析XML,占用内存小,适合处理大型文件;DOM则是将整个XML文档加载到内存中...
DOM4J提供了解析XML文档并获取元素的方法,如`Document`类的`rootElement()`可以获取根元素,`Element`类的`elements()`和`element()`则用于遍历和获取子元素。 2. **属性(Attribute)**:元素可以包含属性,如`...
除了Java自带的解析库,还有第三方库如JAXB(Java Architecture for XML Binding)用于对象与XML之间的映射,以及DOM4J、XOM等提供更高级别的接口,简化XML处理。 5. 实战应用: 在实际项目中,根据需求选择合适的...
解析XML文件后,DOM4J会创建一个Document对象,包含文档的所有元素、属性和其他结构。在Java中,你可以通过`SAXReader`类来读取XML文件并构建Document对象: ```java File file = new File("path_to_your_xml_file....
### Java解析XML技术详解:DOM、SAX、JDOM、DOM4j与XPath #### 一、基础知识概览 在Java开发中,处理XML文件是一项常见的任务。XML(Extensible Markup Language,可扩展标记语言)是一种用于存储和传输数据的标准...
描述中提到"使用dom4j解析xml,对xml进行读写操作",这意味着这个项目不仅演示了如何使用Dom4j库读取XML文件,还涵盖了写入XML的操作。通过这个项目,我们可以学习到如何在Java中利用Dom4j进行XML文档的解析、节点的...
Java DOM4J XML是一个在Java环境中处理XML文档的库,它提供了一套高效、灵活的API,使得开发者能够轻松地进行XML的解析、创建、修改和查询。DOM4J是Java社区中的一个流行选择,因为它相比标准的DOM API更加轻量级且...
在Android中引入DOM4J库后,可以像这样解析XML: ```java SAXReader reader = new SAXReader(); Document document = reader.read(xmlFile); Element root = document.getRootElement(); // 使用XPath查询或遍历XML...
以上代码展示了如何使用DOM4J解析XML字符串,并获取根元素及其子元素。在实际项目中,你可能需要根据具体需求来调整这些操作,比如使用XPath查询特定节点,或者修改XML文档的内容。 总的来说,DOM4J是Java开发中...
Java解析XML时,dom4j是一个非常流行的库,它提供了灵活且强大的API来处理XML文档。dom4j-1.6.1.jar是这个库的一个版本,发布于2005年,它支持XML的读取、写入、操作以及查询功能。在本文中,我们将深入探讨dom4j的...
DOM4J是Java中解析XML的常用库之一,其名称中的“DOM”指的是Document Object Model,这是一个W3C标准,用于表示XML文档的树型结构。DOM4J不仅支持DOM,还提供了SAX(Simple API for XML)和StAX(Streaming API for...
Java DOM4J解析XML详解 XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。DOM4J是Java中一个强大的、轻量级的处理XML的库,它提供了丰富的API来读取、...
在"xml_DOM_SAX.rar"这个压缩包中,可能包含了一些示例代码或练习,用于展示DOM和SAX解析XML的基本操作。对于初学者来说,通过实际操作可以更好地理解这两种解析方式的工作原理和使用方法。 例如,一个简单的DOM...
使用DOM解析XML文件 Dom解析是将xml文件全部载入,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件。对于特别大的文档,解析和加载整个文档可能很慢且很耗资源 http://www.iteye.com/topic/763926
Java提供了多种解析XML的API,其中DOM(Document Object Model)和DOM4j是常用的两种方法。本文将详细介绍这两种方式以及如何使用它们进行XML文档的增、删、改查操作。 一、DOM解析 DOM解析器将整个XML文档加载到...
本教程将深入探讨Java中使用DOM模型解析XML文件的方法。 首先,我们需要了解DOM的基本概念。DOM将XML文档视为一个节点树,其中根节点代表整个文档,其他节点则表示文档的各种元素、属性、文本等。通过DOM API,我们...
DOM4J是Java中一个非常流行的XML处理库,它提供了灵活且高效的API,使得开发者能够轻松地进行XML的解析、创建、修改等操作。在Java领域,XML常用于数据交换、配置存储以及文档生成等场景,因此理解并掌握DOM4J对于...
DOM(Document Object Model)和SAX(Simple API for XML)是解析XML文档的两种主要方法。 DOM是一种W3C标准,它将XML文档视为一棵树形结构,其中每个节点代表XML文档的一部分。在DOM解析中,整个XML文档被加载到...