import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class ReadXMLByDom {
public static void main(String [] args){
ReadXMLByDom r = new ReadXMLByDom();
r.readXMLAllAttr();
r.readXMLAllElement();
r.readXMLAttr();
r.readXMLElement();
}
//第一种:根据属性来查找
//结果为:<book id="2"><Name>Linux</Name><price>100</price></book>
public void readXMLAttr() {
String str = "<books><book id='1'><Name>Java</Name><price>100</price></book>";
str = str
+ "<book id='2'><Name>Linux</Name><price>100</price></book></books>";
// 生成一个Document
Document document = null;
try {
document = DocumentHelper.parseText(str);
Element book = (Element) document
.selectSingleNode("/books/book[@id='2']");
System.out.println(book.asXML());
} catch (DocumentException e) {
e.printStackTrace();
}
}
//第二种:根据节点名来查找
//结果为:Java,Linux,
public void readXMLElement() {
String str = "<books><book id='1'><Name>Java</Name><price>100</price></book>";
str = str
+ "<book id='2'><Name>Linux</Name><price>100</price></book></books>";
Document document = null;
try {
document = DocumentHelper.parseText(str);
List names = document.selectNodes("//Name");// 记得这边是双斜杠且有区分大小写
for (int i = 0; i < names.size(); i++) {
System.out.print(((Element) names.get(i)).getText() + ",");
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
//第三种:遍历整个XML取得属于指定类型节点的记录
//结果为:1 Java 100
// 2 Linux 100
public void readXMLAllElement() {
String str = "<books><book id='1'><Name>Java</Name><price>100</price></book>";
str = str
+ "<book id='2'><Name>Linux</Name><price>100</price></book></books>";
Document document = null;
try {
document = DocumentHelper.parseText(str);
Iterator it = document.getRootElement().elementIterator();
Element element = null;
while (it.hasNext()) {
element = (Element) it.next();
if (element.getName().equals("book")) {
System.out.print(element.attributeValue("id") + " ");
System.out.print(element.element("Name").getText() + " ");
System.out.println(element.element("price").getText());
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
//第四种:遍历所有属性
//结果为:id:1
// name:Java
// price:120
public void readXMLAllAttr() {
String str = "<book id='1' name='Java' price='120'/>";
Document document;
try {
document = DocumentHelper.parseText(str);
Iterator attributes = document.getRootElement().attributeIterator();
while (attributes.hasNext()) {
Attribute attribute = (Attribute) attributes.next();
System.out.println(attribute.getName() + ":"
+ attribute.getValue());
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qking93415981/archive/2007/09/14/1785114.aspx
分享到:
相关推荐
这篇名为“dom4j 读xml灰藏有用的jar包”的博客文章可能详细介绍了如何利用DOM4J来读取和操作XML文件,而“student.xml”可能是博主用于示例的一个XML文件。 在处理XML时,DOM4J主要有以下几个关键知识点: 1. **...
基于dom4j的读写xml文件的工具包。封装了dom4j操作xml文档的常和方法。 支持两种读写方法。1:针对小文件的读取整个文档,2:针对大文件的,逐行读取。读到几百M文件毫无压力。
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的读取、创建、修改和解析变得简单易行。在本文中,我们将深入探讨DOM4J如何实现XML文件的读取和写入,并通过一个实际的`...
### 使用DOM4j解析XML文件:提升开发效率与代码可读性 在现代软件开发中,XML(Extensible Markup Language)是一种广泛使用的数据交换格式,它以人类可读的文本形式存储结构化信息。然而,如何高效、准确地解析XML...
在使用DOM4J解析XML文件之前,需要导入DOM4J相关的jar包,通常版本为1.6.1。 #### DOM4J常用对象 - **SAXReader**: 用于读取XML文件,并将其转换成Document对象。 - **Document**: XML文档对象树,类似于HTML文档...
【标题】"DOM4J格式化XML"是一个关于XML处理的专题,主要聚焦于使用DOM4J库对XML文档进行格式化的技术。DOM4J是一个非常流行的Java XML API,它提供了丰富的功能,包括读取、写入、修改以及操作XML文档。在XML处理中...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高性能的API,使得开发者可以方便地读取、写入、修改以及操作XML数据。DOM4J相较于标准的DOM API,更易于使用,且内存占用更低,是Java开发中的首选...
// SAXReader就是一个管道,用一个流的方式,把xml文件读出来 // // SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文档 // Document document = reader.read(new File("User.hbm.xml")...
标题"Dom4j_demo.rar_DEMO_dom4j de_dom4j demo_dom4j demo project_xml读"中包含了几个关键信息点:`Dom4j`、`demo`以及`xml读`。这表明这是一个关于使用Dom4j库进行XML读取操作的示例项目。`Dom4j`是Java中一个...
DOM4J提供了`Format`类用于格式化XML输出,使其更易读。创建一个`Format`对象并使用`outputString()`方法: ```java Format prettyFormat = Format.getPrettyFormat(); String formattedXML = doc.asXML...
java操作xml源码 操作方式包括:dom和dom4j dom是W3C规范,比较典型的JAVA操作XML方式,适用于小型文件。 dom4j是开源的性能以及效率最好的,也是一个典型例子。...采用dom4j写xml 以及dom4j方式读XML
DOM4J是一个强大的Java库,专门用于处理XML文档。它是一个灵活且高性能的XML解析器,同时提供了丰富的API,使得在Java应用程序中读取、写入、修改和操作XML文件变得简单。DOM4J这个名字来源于Document Object Model ...
DOM4J是Java中一个流行的XML处理库,它提供了灵活且功能强大的API来操作XML文档。本篇笔记将深入探讨XML DOM4J的学习要点。 一、XML基础知识 1. XML结构:XML文档由元素(Element)、属性(Attribute)、文本内容...
`dom4j`是一个强大的Java XML API,它提供了一种灵活的方式来读取、写入、修改以及操作XML文档。在解析`struts.xml`时,dom4j能帮助我们高效地遍历XML节点,获取或设置属性值,以及创建对象模型来表示配置文件的结构...
DOM4j是一个灵活且功能强大的Java XML API,它提供了全面的XML处理解决方案,包括读取、写入、操作和转换XML文档。DOM4j的核心特性是基于DOM模型,但同时融入了SAX和DOM的优点,使其在处理大型XML文件时具有更好的...
使用DOM4J进行的一系列对XML文件的操作,包括读写,创建,同时注释出相关的常用的解析器,Document创建器
Java 读取XML文件时,有多种解析器可供选择,分别是SAX、DOM、JDOM和DOM4J。这些解析器各有优缺点,适用于不同的场景。 SAX(Simple API for XML)是一种基于事件驱动的解析器。它在解析XML文件时,会按顺序触发一...
### DOM4J:Java下的XML处理库 DOM4J(Document Object Model for Java)是一个用于处理XML的Java库,它提供了简单、强大的API来读取、写入和修改XML文档。DOM4J的设计目标是易于使用且高效。本文将根据提供的代码...