1、Dom4j概述
dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP.
dom4j官方网址:dom4j
dom4j源码下载:dom4jdownload
本示例中,需要导入dom4j.jar包,才能引用dom4j相关类,dom4j源码和jar包,请见本示例【源码下载】或访问 dom4j
org.dom4j包,不仅包含创建xml的构建器类DocumentHelper、Element,而且还包含解析xml的解析器SAXReader、Element,包含类如下:
org.dom4j
org.dom4j.DocumentHelper;
org.dom4j.Element;
org.dom4j.io.SAXReader;
org.dom4j.io.XMLWriter;
org.dom4j.DocumentException;
sdk源码查看路径(google code)
创建和解析xml的效果图:
2、Dom4j 创建 XML
Dom4j,创建xml主要用到了org.dom4j.DocumentHelper、org.dom4j.Document、org.dom4j.io.OutputFormat、org.dom4j.io.XMLWriter
首先,DocumentHelper.createDocument(),创建org.dom4j.Document 的实例 doc
接着,通过doc,设置xml属性doc.setXMLEncoding("utf-8")、doc.addElement("root")根节点,以及子节点等
然后,定义xml格式并输出,new XMLWriter(xmlWriter, outputFormat)
Code
运行结果:
3、Dom4j 解析 XML
Dom4j,解析xml主要用到了org.dom4j.io.SAXReader、org.dom4j.Document、doc.getRootElement(),以及ele.getName()、ele.getText()等
首先,创建SAXReader的实例reader,读入xml字节流reader.read(is)
接着,通过doc.getRootElement()得到root根节点,利用迭代器取得root下一级的子节点eleRoot.elementIterator()等
然后,得到解析的xml内容xmlWriter.append(xmlHeader)、xmlWriter.append(personsList.get(i).toString())
解析一:标准解析(Iterator 迭代)
Code
运行结果:
解析二:选择性解析(XPath路径)
Dom4j+XPath,选择性只解析id,doc.selectNodes("//root//person//id")
Code
注:借助 XPath 解析 XML 时,需要导入jaxen;本示例需要导入的是最新的jaxen包jaxen-1.1.3.jar,可以下载本示例下面【源码下载】或 访问 jaxen jar
Jaxen is an open source XPath library written in Java. It is adaptable to many different object models, including DOM, XOM, dom4j, and JDOM. Is it also possible to write adapters that treat non-XML trees such as compiled Java byte code or Java beans as XML, thus enabling you to query these trees with XPath too.
jaxen 官方网址:jaxen
jaxen下载jar包:jaxen jar或jaxen jar
jaxen源码查看:jaxen src或 jaxen trunk
运行结果:
4、Person类
请参见前面博客Android 创建与解析XML(二)—— Dom方式【4、Person类】
源码下载
参考推荐:
dom4j(官方网站)
dom4j src(源码下载)
dom4j src and jar(google code)
jaxen(jaxen 官方网址)
jaxen jar(jaxen jar包下载)
jaxen src(jaxen在线源码)
dom4j 解析 XML(IBM)
dom4j和XPath解析XML
dom4j 属性值回车换行问题
分享到:
相关推荐
Dom方式创建与解析XML文档是一种使用编程语言,如Java,在Android平台实现的方式。这种方式利用了DOM(文档对象模型)的API,其中JAXP(Java API for XML Processing)提供的DocumentBuilder类是用来创建和解析XML...
在本主题"Android之PULL解析XML文件——新浪微博客户端首页效果"中,我们将深入探讨如何利用PULL解析器(PullParser)来处理XML数据,从而实现类似新浪微博客户端首页的动态效果。这种效果通常包括新闻标题、摘要、...
Android SDK还提供了另一种解析XML的方式——`XmlPullParser`,它结合了DOM和SAX的优点,既允许向前查找,又不会一次性加载整个文档,适合Android资源文件的解析。 总之,理解DOM方式在Android中的应用是开发者必备...
本文将深入讲解如何在Android中使用SAX解析XML以及如何通过SAX方式创建XML。 **1. SAX解析XML** SAX解析XML的基本流程是:创建SAXParserFactory,通过该工厂实例化SAXParser,然后设置事件处理器(ContentHandler...
本项目主要关注的是XML的创建和使用Pull解析器来解析XML,这是Android系统中处理XML数据的一种高效方法。接下来,我们将详细讨论这两个知识点。 首先,XML(Extensible Markup Language)是一种用于标记数据的语言...
本文主要关注Android中的Pull解析方式来处理XML,这是一种轻量级、低内存占用的解析方法。 **什么是XML Pull解析** XML Pull解析器(XML Pull Parser)是一种事件驱动的解析模型,它不需要完整的XML文档加载到内存...
除了Android提供的解析器,还可以使用Java标准库中的`javax.xml.parsers`包,包括DOM解析器(`DocumentBuilderFactory`)、SAX解析器(`SAXParserFactory`)和DOM4J等。 6. 使用第三方库 在实际开发中,为了提高...
Pull解析器(XMLPullParser)是Android SDK提供的一种轻量级、高效的XML解析方式,它不需要创建整个XML文档的树结构,而是通过事件触发的方式解析XML,从而节省内存资源。以下是一些关于封装Pull解析XML的关键知识点...
4. 调用`parse()`方法,传入XML文件的输入流或URL,解析XML并返回一个`Document`对象。 5. `Document`对象代表了整个XML文档,可以通过`getDocumentElement()`获取根元素,或者通过`getElementsByTagName()`、`...
其中,`DocumentBuilderFactory`用于创建`DocumentBuilder`对象,`DocumentBuilder`则负责解析XML文件并构建`Document`对象。通过`Document`对象,我们可以获取XML的根元素,并进一步遍历和修改XML结构。 3. **DOM...
在Android项目中,我们通常需要以下步骤来使用SAX解析XML: 1. 创建一个继承自`DefaultHandler`的类,比如我们可以命名为`MySAXHandler`。在这个类中,我们需要重写`startElement`、`endElement`和`characters`方法...
总结来说,Android中解析XML时,DOM适用于小型且需要频繁访问的文件,SAX和Pull解析适合大型文件或资源有限的环境。选择哪种解析方式取决于具体应用场景和性能需求。理解并熟练掌握这三种解析方式,将有助于提升...
本篇文章将深入探讨Android解析XML的三种主要方法:DOM、SAX和Pull解析器,并结合源码进行分析,帮助开发者理解它们的工作原理和适用场景。 1. DOM解析: DOM(Document Object Model)解析器将整个XML文档加载到...
除了DOM和SAX,Android还提供了另一种解析XML的方式——Pull解析器(PullParser),它是基于事件驱动的轻量级解析器,类似于SAX,但更易于使用。`android.util.Xml`提供了一个`PullParser`的实现。 示例代码: ```...
Android系统提供了一种轻量级的XML解析方式——PULL解析器(Pull Parser),它适用于处理大型XML文档,因为它不需要像DOM解析器那样一次性加载整个XML文档到内存中。PULL解析器通过事件驱动的方式,按需解析XML文档...
总结,Android解析XML的三种方法——SAX、DOM和PULL,各有适用场景。理解它们的工作原理和优缺点,可以帮助我们更好地选择和运用XML解析技术,提高应用的效率和用户体验。在实践中不断学习和探索,才能真正掌握这些...
在安卓Android开发中,理解和掌握XML解析方法是至关重要的,因为XML被广泛用于存储和传输数据,...`dom4j.jar`和压缩包内的源码文件为学习和实践XML解析提供了很好的资源,可以帮助我们更好地理解和运用XML处理技术。