`
yulon
  • 浏览: 117825 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

通过Dom4j创建和读取xml文件

    博客分类:
  • xml
阅读更多

一、创建一个简单的xml文件:

/*
	 * @param filename 需建立的文件名
	 * 
	 * @return 返回操作结果, 0表失败, 1表成功
	 */
	public static int createXMLFile(String filename) {
		/** 返回操作结果, 0表失败, 1表成功 */
		int returnValue = 0;
		/** 建立document文档对象 */
		Document document = DocumentHelper.createDocument();
		/** 建立XML文档的根节点books */
		Element booksElement = document.addElement("books");
		/** 在根节点<books>下加入一行注释 */
		booksElement.addComment("This is a test for dom4j, holen2009.9.11");
		/** 加入第一个book子节点(即第一本书) */
		Element bookElement = booksElement.addElement("book");
		/** 加入show属性内容 */
		bookElement.addAttribute("show", "yes");
		/** 在<book>节点下加入title节点 */
		Element titleElement = bookElement.addElement("title");
		/** 为title设置内容 */
		titleElement.setText("Dom4j Tutorials");
		/** 类似的完成后两个book */
		bookElement = booksElement.addElement("java");
		bookElement.addAttribute("show", "yes");
		titleElement = bookElement.addElement("title");
		titleElement.setText("java编程思想中文版");
		bookElement = booksElement.addElement("C语言");
		bookElement.addAttribute("show", "no");
		bookElement.addAttribute("name", "C#入门经典");
		titleElement = bookElement.addElement("title");
		titleElement.setText("C#编程思想中文版");
		/** 加入owner节点 */
		Element ownerElement = booksElement.addElement("owner");
		ownerElement.setText("O'Reilly");
		try {
			/** 将document中的内容写入文件中 */
			XMLWriter writer = null;
			/** 格式化输出,类型IE浏览一样 */
			OutputFormat format = OutputFormat.createCompactFormat();
			/** 指定XML编码 */
			format.setEncoding("UTF-8");
			writer = new XMLWriter(new FileOutputStream(new File(filename)),
					format);
			// writer = new XMLWriter(new FileOutputStream(new File(filename)));
			// 把整个文档写入文件
			writer.write(document);
			writer.close();
			/** 执行成功,需返回1 */
			returnValue = 1;
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return returnValue;
	}

   输出的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<books>
  <!--This is a test for dom4j, holen2009.9.11-->
  <book show="yes">
    <title>Dom4j Tutorials</title>
  </book>
  <java show="yes">
    <title>java编程思想中文版</title>
  </java>
  <C语言 show="no" name="C#入门经典">
    <title>C#编程思想中文版</title>
  </C语言>
  <owner>O'Reilly</owner>
</books>

    建立文档步骤及常用方法:

    1、建立document文档对象-->DocumentHelper.createDocument();
 
 2、建立XML文档的根节点-->调用Document对象的addElement("elementName")方法
 
 3、加入一行注释-->Element对象的addComment("comment Text")方法
 
 4、在根节点下建立子子节点-->Element对象的addElement("elementName");
 
  5、加入属性内容-->如:<book name="java" show="yes">使用Element对象的addAttribute("name", "value");
  
  6、为节点设置内容-->如:<title>内容<itle>,使用Element的setText("内容")方法
  
 7、将document中的内容写入文件中-->使用XMLWriter的writer方法,通过构造方法XMLWriter(OutputStream out, OutputFormat format)
 获得XMLWriter对象.OutputFormat为格式化输出对象(有两种格式),默认是使用CompactFormat,输出的内容不会换行,
 若要使用换行,需要通过OutputFormat.createCompactFormat()获取.还可以设置字符值编码,调用OutputFormat的setEncoding("utf-8")方法.

 

二、读取xml文档.

public static void ReadXml(String filename) {
		SAXReader saxReader = new SAXReader();
		Document document = null;
		try {
			document = saxReader.read(
			// 搜索当前线程classpath下的文件
			Thread.currentThread().getContextClassLoader()
							.getResourceAsStream(filename));
		} catch (DocumentException e) {
			e.printStackTrace();
		}

		// xpath查找对象
		List list = document.selectNodes("//java");

		for (Iterator iter = list.iterator(); iter.hasNext();) {
			Element element = (Element) iter.next();
			System.out.println(element.attributeValue("show"));
			List titlelist = element.selectNodes("title");
			Element title = (Element) titlelist.get(0);
			System.out.println(title.getText());

		}
	}

 

读取文档步骤及常用方法:
   1、通过SAXReader对象的read(InputStream in)方法获取整个文档(以树的结构加载到内存中).
  
   2、通过Document对象selectNodes("//java")方法获取指定的节点,并返回List对象,而List里装的Element对象.
  
   3、通过遍历的方式读取指定的节点(Element)列表,通过调用Element的方法可获取此节点的属性值或Text值.
  
   4、你可以定义一个POJO的java类封装Element的属性.

 

三、dom4j在实际项目中的应用

 

附件还带有修改的方法

分享到:
评论

相关推荐

    通过Dom4j创建和读取xml文件下载

    使用DOM4J创建XML文件通常涉及以下步骤: - 创建`Document`对象,这代表XML文档的根节点。 - 创建`Element`对象并添加到`Document`中,表示XML文档的元素层次结构。 - 添加`Attribute`,为元素设置属性。 - ...

    dom4j读写xml文档实例

    要使用DOM4J读取XML文档,首先需要创建一个`SAXReader`对象,然后调用`read`方法传入XML文件路径。这将返回一个`Document`对象,我们可以从中获取所有元素信息。 ```java File file = new File("path_to_xml_file")...

    利用dom4j--读取xml文件

    在本文中,我们将详细探讨如何利用DOM4J库来读取XML文件。 1. **安装DOM4J** 要使用DOM4J,首先需要将其添加到你的项目依赖中。如果你使用的是Maven,可以在`pom.xml`文件中添加以下依赖: ```xml &lt;groupId&gt;...

    dom4j 解析(读取) xml 节点数据

    接下来,我们将创建一个`SAXReader`实例,它是DOM4J中的解析器,用于读取XML文件: ```java SAXReader reader = new SAXReader(); ``` 然后,使用`reader`读取XML文件并获取`Document`对象,`Document`代表整个XML...

    读写超大类xml文件,使用dom4j读写xml文件的工具类

    基于dom4j的读写xml文件的工具包。封装了dom4j操作xml文档的常和方法。 支持两种读写方法。1:针对小文件的读取整个文档,2:针对大文件的,逐行读取。读到几百M文件毫无压力。

    使用dom4j和jaxen解析xml

    在Java开发中,dom4j和jaxen是两个常用的库,用于解析和操作XML文档。 **dom4j** 是一个非常灵活且功能强大的Java XML API,它提供了全面的XML解决方案,包括XML的读取、写入、修改以及XPath查询等功能。dom4j的...

    DOM4j创建和解析XML文档

    在这个主题中,我们将深入探讨DOM4j如何帮助我们创建和解析XML文档,以及其背后的原理和用法。 首先,DOM4j采用了Document Object Model(DOM)的概念,但它比标准的Java DOM实现更加轻量级,性能更优。DOM4j的核心...

    Dom4j解析XML文档.doc

    无论是读取XML文件,解析XML字符串,还是创建、修改和遍历XML结构,DOM4J都提供了简洁的接口,极大地简化了开发者的工作。在实际的开发中,掌握DOM4J的使用,能够帮助你更有效地处理XML数据,提高代码的可维护性和...

    Dom4J生成XML的完整方法希望大家能用到

    以下代码展示了如何使用Dom4J创建一个简单的XML文档: ```java import java.io.File; import java.io.FileWriter; import org.dom4j.io.XMLWriter; import org.dom4j.*; public class CreateDoc { public int ...

    dom4j解析xml详解

    - **配置文件解析**: 许多应用使用XML作为配置文件的格式,DOM4J可以方便地读取和更新这些配置信息。 - **Web服务**: 在SOAP等协议中,XML是常用的数据传输格式,DOM4J能够帮助构建和解析这些XML消息。 - **文档生成...

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    1. **解析XML**:DOM4J可以读取XML文件,将其转换为一个树形结构,即Document对象。解析器有SAX和DOM两种模式,SAX是事件驱动的,适用于大文件,而DOM则将整个文档加载到内存中,适合小文件。 2. **创建XML**:DOM4...

    使用dom4j 和本地dom 解析xml 文件

    在Java中,解析XML文件是常见的任务,通常有DOM(Document Object Model)和DOM4J两种方式。下面我们将详细探讨这两种解析方法。 DOM解析方式是将整个XML文件加载到内存中,形成一棵DOM树,每个节点代表XML文档的一...

    dom4j---xml解析jar包

    1. **读取XML文件**:使用`DocumentBuilder`或`SAXReader`类读取XML文件并创建`Document`对象。 2. **遍历XML结构**:通过`Element`对象的`elementIterator()`方法进行迭代,或者使用XPath表达式获取特定节点。 3. *...

    dom4j_XML.rar_DOM4J_dom4j xml java_java xml_读写xml

    6. **示例代码**:压缩包中的“dom4j读写xml文件.htm”可能包含了具体的代码示例,演示了如何使用DOM4J读取和写入XML文件。通常,这些示例会包括打开XML文件、获取根元素、遍历元素、修改元素内容、以及保存修改后的...

    XSD使用dom4j校验XML

    本篇文章将深入探讨如何利用DOM4J库来实现XSD对XML文档的校验,以确保XML文件符合预先设定的数据结构规则。 首先,理解XSD的作用至关重要。XSD文件定义了XML文档的元素、属性、数据类型以及它们之间的关系。通过...

    dom4j的jar包(读取xml)

    DOM4J通过其灵活的API,使开发者可以轻松地读取、写入和操作XML文件。例如,你可以使用DOM4J来获取XML文档的根元素,遍历元素树,检索或修改元素、属性、文本内容,甚至执行XPath查询。 `dom4j-1.6.1.jar`是DOM4J的...

    分别使用DOM和DOM4j解析XML文件

    本篇文章将详细介绍如何使用DOM(Document Object Model)和DOM4j这两种流行的方法来解析XML文件。 首先,DOM是一种标准的W3C推荐的解析XML的方法,它将整个XML文档加载到内存中,形成一个树形结构,便于程序进行...

    dom4j API 用于解析XML的java库

    6. **读写XML文件**:DOM4J提供了一系列的`Writer`和`Reader`,可以方便地读取XML文件到内存,或者将内存中的XML结构写入文件。例如,`XMLWriter`用于格式化输出XML,而`SAXWriter`则用于快速无格式的输出。 7. **...

Global site tag (gtag.js) - Google Analytics