`
心痛泪流
  • 浏览: 12412 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Dom4j常用操作备忘!

阅读更多
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.LinkedList;
import java.util.List;

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 Dom4jTest {
	/**
	 * 方法创建一个XML文件,并设置文件节点。
	 * 
	 * @param 无参数
	 * @return void 无返回
	 * @exception try IOException
	 */
	public static void dom4jCreateXml() {
		Document doc = DocumentHelper.createDocument();
		doc.addComment("这是一个保存学生信息的XML文档");
		Element root = doc.addElement("students");
		Element stuEle = root.addElement("student");
		stuEle.addAttribute("id", "1");
		Element nameEle = stuEle.addElement("name");
		nameEle.setText("zhangsan");
		Element sexEle = stuEle.addElement("sex");
		sexEle.setText("man");
		Element ageEle = stuEle.addElement("age");
		ageEle.setText("20");
		Writer out;
		try {
			out = new FileWriter("src/student.xml");
			OutputFormat format = OutputFormat.createPrettyPrint();
			format.setEncoding("GBK");
			XMLWriter writer = new XMLWriter(out, format);
			writer.write(doc);
			writer.close();
			System.out.print("生成XML文件成功");
		} catch (IOException e) {
			System.out.print("生成XML文件失败5ee4463499dUadhh");
			e.printStackTrace();
		}
	}

	/**
	 * 方法用于为XML添加一个节点
	 * 
	 * @param 无参数
	 * @return void 无返回类型
	 * @exception throws DocumentException, IOException
	 */
	public static void addElement() throws DocumentException, IOException {
		File file = new File("src/student.xml");
		SAXReader reader = new SAXReader();
		Document doc = reader.read(file);
		Element root = doc.getRootElement();
		Element stuEle = root.addElement("student");
		stuEle.addAttribute("id", "2");
		Element nameEle = stuEle.addElement("name");
		nameEle.setText("lisi");
		Element sexEle = stuEle.addElement("sex");
		sexEle.setText("nv");
		Element ageEle = stuEle.addElement("age");
		ageEle.setText("21");
		XMLWriter writer = new XMLWriter(new FileWriter(file));
		writer.write(doc);
		writer.close();
	}

	/**
	 * 方法用于修改某个节点的属性或值
	 * 
	 * @param 无参数
	 * @return void 无返回
	 * @exception throws DocumentException, IOException
	 * */
	@SuppressWarnings("unchecked")
	public static void modifyElement() throws DocumentException, IOException {
		LinkedList l;
		File file = new File("src/student.xml");
		SAXReader reader = new SAXReader();
		Document doc = reader.read(file);
		Element root = doc.getRootElement();
		List<Element> student = root.elements("student");
		for (int i = 0; i < student.size(); i++) {
			if (student.get(i).attributeValue("id").equals("2")) {
				student.get(i).element("name").setText("wangwu");
				XMLWriter writer = new XMLWriter(new FileWriter(file));
				writer.write(doc);
				writer.close();
				break;
			}
		}
	}

	/**
	 * 方法用于删除文件中的某个节点
	 * 
	 * @param 无参数
	 * @return void 无返回
	 * @exception throws DocumentException, IOException
	 * */
	@SuppressWarnings("unchecked")
	public static void deleteElement() throws DocumentException, IOException {
		File file = new File("src/student.xml");
		SAXReader reader = new SAXReader();
		Document doc = reader.read(file);
		Element root = doc.getRootElement();
		List<Element> student = root.elements("student");
		for (Element ele : student) {
			if (ele.attributeValue("id").equals("2")) {
				root.remove(ele);
				XMLWriter writer = new XMLWriter(new FileWriter(file));
				writer.write(doc);
				writer.close();
				break;
			}
		}
	}

	/**
	 * 方法用于读取整个XML文件,显示各个节点的值
	 * 
	 * @param 无参数
	 * @return void 无返回类型
	 * @exception throws DocumentException
	 * */
	@SuppressWarnings( { "unused", "unchecked" })
	private static void dom4jReadXml() throws DocumentException {
		File file = new File("src/em.xml");
		SAXReader reader = new SAXReader();
		Document doc = reader.read(file);
		
		Element root = doc.getRootElement();
		List<Element> list = root.elements("student");
		for (Element ele : list) {
			String name = ele.elementText("name");
			String age = ele.elementText("age");
			String sex = ele.elementText("sex");
			System.out.println(name + " " + age + " " + sex);
		}
	}
	
	public static void main(String[] args) throws DocumentException {
		dom4jReadXml();
	}
}

 

分享到:
评论

相关推荐

    dom4j常用操作实例

    此文档包含了Dom4J常用的操作(对于一般的应用足够了)和实例,可模仿开发

    Dom4j常用jar包

    总的来说,Dom4j作为一个强大的XML处理工具,为开发者提供了便捷的接口和丰富的功能,无论是在简单的XML数据操作还是复杂的XML文档处理场景中,都能发挥出其优势。了解并熟练掌握Dom4j,对于提升Java开发中的XML处理...

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

    导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写操作。 总之,DOM4J作为一款强大的XML处理工具,为Java开发者提供了丰富的功能和良好的性能,是处理XML文档的理想选择。无论是小型项目还是大型企业级...

    dom4j常用方法

    dom4j常用方法 i.SAXReader sr = new SAXReader(); 生成解析器对象 ii.解析器对象.read(file对象); 解析文件生成Document对象 iii.文档对象.getRootElement() 获取跟元素节点 iv.元素节点.elements() 获取到指定...

    dom4j_dom4j1.6.1安装包_

    DOM4J是一个强大的Java库,专门用于...无论是创建XML文档、查询XML结构还是进行XML数据操作,DOM4J都能提供简洁、高效的API。在安装和使用过程中,确保正确添加依赖并熟悉其核心API,将有助于提升XML处理的效率和质量。

    dom4j_例子,包括所有常用用法

    本文将通过一个具体的示例代码来深入探讨DOM4j的使用方法,涵盖创建、修改XML文档的常用操作。 #### 创建XML文档 在DOM4j中,创建XML文档非常直观。首先,需要导入DOM4j相关的包: ```java import org.dom4j....

    dom4j-1.6.1 与 dom4j-2.0.0-ALPHA

    总的来说,DOM4J是XML处理领域中的一个重要工具,无论是在简单的数据提取还是复杂的文档操作中,都能提供强大而灵活的支持。了解并掌握DOM4J的使用,对于任何涉及XML的Java开发者来说都是非常有价值的技能。

    dom4j dom4j dom4j dom4j

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单易行。在Java世界中,DOM4J是与DOM、SAX和JDOM等其他XML处理库并驾齐驱的一个选择,尤其在处理...

    dom4j_1.6.1.jar dom4j_2.1.0.jar

    标题提及的"dom4j_1.6.1.jar"和"dom4j_2.1.0.jar"是两个不同版本的DOM4J库的Java档案文件,DOM4J是一个非常流行的Java XML API,用于处理XML文档。这两个版本的差异在于功能、性能优化和可能存在的bug修复。描述中...

    dom4j dom4j1.6 dom4j最新版

    2. **文档操作**:DOM4J提供了丰富的API,允许开发者创建、修改和删除XML元素、属性和文本。这使得在程序中动态构建和修改XML文档变得非常便捷。 3. **XPath支持**:DOM4J实现了XPath 1.0规范,允许用户通过简洁的...

    使用Maven管理项目,实现DOM4j操作XML文件

    DOM4j则是一个强大的Java库,用于处理XML文档,提供了丰富的API来实现XML的读取、写入、修改等操作。在这个示例中,我们将深入探讨如何利用Maven管理和DOM4j来操作XML文件。 首先,让我们了解一下Maven。Maven是...

    dom4j-2.1.3.zip

    在"dom4j-2.1.3.jar"文件中,包含了DOM4J库的所有类和方法,可以用于构建、解析和操作XML文档。这个版本的DOM4J在前一版本的基础上进行了优化和更新,以适应不断发展的Java技术和XML应用场景。 "dom4j-2.1.3-...

    dom4j练习示例(备忘用)

    这个"dom4j练习示例(备忘用)"压缩包很可能是包含了一些代码示例,帮助学习者理解和掌握DOM4J的核心功能。 在DOM4J中,XML文档被表示为一个树形结构,根节点是Document对象,而其他元素、属性、文本等都是其子节点。...

    dom4j所依赖的所有jar包

    6. **XPath表达式操作**:DOM4J提供了XPath编译和执行的能力,允许开发者动态构建和执行XPath表达式,增强了XML文档的检索能力。 在标题中提到的“所有jar包”,除了主jar包`dom4j-1.6.1.jar`外,还有`jaxen-1.1-...

    所有版本的dom4j工具包

    标题提到的"所有版本的dom4j工具包"表明这是一个包含多版本DOM4J库的集合,可能包括了从早期到较新的一些版本,如dom4j-1.4.jar、dom4j-1.6.1.jar和dom4j-1.5.2.jar。这些不同版本的库可能分别对应于不同的功能特性...

    dom4j-2.0.3.zip

    总结,DOM4J作为Java处理XML的首选工具之一,其易用性、灵活性和高效性为XML操作带来了极大的便利。了解并掌握DOM4J,对于提升XML相关项目的开发效率至关重要。通过阅读DOM4J的API文档(如`dom4j-2.0.3-javadoc.jar`...

    DOM4J帮助文档及使用教程

    8. **事件处理**:如果需要在解析或操作XML时执行某些动作,可以注册监听器或处理器,DOM4J提供了相应的API。 9. **高级功能**:包括命名空间管理、DTD处理、实体引用、XML Schema支持等进阶话题。 10. **性能优化...

    DOM4J 的使用

    DOM4J 是一个基于 Java 的 XML 解析包,用于解析和操作 XML 文档。它提供了一个简洁的 API,方便用户快速地解析和操作 XML 文档。DOM4J 采用了 Java 集合框架,完全支持 DOM、SAX 和 JAXP。 二、DOM4J 的主要接口 ...

    dom4j需要的包

    DOM4J的名字来源于“Document Object Model for Java”,它采用面向对象的设计思想,提供了丰富的接口和类来操作XML。 在标题中提到的“dom4j需要的包”,主要包括了两个JAR文件和一个学习帮助文档。这两个JAR文件...

    dom4j 2.1.1

    在实际使用中,DOM4J通常包含以下核心组件和操作: - **Element**:XML文档的基本结构单元,代表XML的元素。通过Element接口,你可以获取或设置元素的属性、文本内容以及子元素。 - **Attribute**:元素上的属性,...

Global site tag (gtag.js) - Google Analytics