`
haoran_10
  • 浏览: 443288 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

dom4j对xml文件的基本操作

    博客分类:
  • java
阅读更多

对xml文件的操作,有个很好的开源框架,dom4j,使用了大量的接口,

这里用常用的接口对xml文件进行了满足与xml平常操作需要

 

创建xml

 

public static void createDocument(String xmlName) {
		Document document = DocumentHelper.createDocument();
		Element rootElement = document.addElement("students");// 设置根节点
		rootElement.addComment("this is a root");// 添加注释
		Element studentElement = rootElement.addElement("student");// 添加子节点
		studentElement.addAttribute("name", "kaka");// 添加属性
		Element ageElement = studentElement.addElement("age");
		ageElement.addText("28");// 添加文本节点
		createXml(document, xmlName);
	}

	public static void createXml(Document document, String xmlName) {
		try {
			OutputStream out = new FileOutputStream(new File(xmlName));// 输出流
			OutputFormat format = OutputFormat.createPrettyPrint();// 格式设置
			format.setEncoding("gb2312");
			XMLWriter writer = new XMLWriter(out, format);// xml写入流
			writer.write(document);// 把document对象写入到文件里
			writer.flush();// 刷新
		} catch (Exception e) {
			System.out.println("程序发生异常");
			System.exit(0);
		}
	}

 

创建后结果为:

 

 

<?xml version="1.0" encoding="gb2312"?>

<students>
  <!--this is a root-->
  <student name="kaka">
    <age>28</age>
  </student>
</students>
 

 

 

修改xml文件

 

public static void modifyXMLFile(String fileName) {
		SAXReader saxReader = new SAXReader();

		try {
			Document document = saxReader.read(new File(fileName));// 读取xml文档
			List<?> listAttribute = document
					.selectNodes("/students/student/@name");// 用xpath查找节点student的属性
			for (int i = 0; i < listAttribute.size(); i++) {
				Attribute attribute = (Attribute) listAttribute.get(i);
				if (attribute.getValue().equals("kaka")) {
					attribute.setValue("C罗");
				}
			}

			List<?> listElement = document.selectNodes("/students/student/age");// 用于查找节点age的内容
			for (int i = 0; i < listElement.size(); i++) {
				Element element = (Element) listElement.get(i);
				if (element.getText().equals("28")) {
					element.setText("29");
				}
			}
			createXml(document, fileName);
		} catch (Exception e) {
			System.out.println("发生异常");
			System.exit(0);
		}

	}

 

修改后结果为:

 

<?xml version="1.0" encoding="gb2312"?>

<students>
  <!--this is a root-->
  <student name="C罗">
    <age>29</age>
  </student>
</students>
 

 

 

 

 删除文件节点

 

public static void deleteElement(String fileName) {
		SAXReader saxReader = new SAXReader();
		try {
			Document document = saxReader.read(new File(fileName));// 读取xml文档
			List<?> listStuElement = document.selectNodes("/students/student");// 用于查找节点student的内容
			for (int i = 0; i < listStuElement.size(); i++) {
				Element studentElement = (Element) listStuElement.get(i);//每个student节点信息存下来
				List<?> listAgeElement = studentElement.selectNodes("age");//当前student节点下age节点
				for(int j=0;j<listAgeElement.size();j++){
					Element  age = (Element) listAgeElement.get(j);
					if(age.getText().equals("29")){
						studentElement.remove(age);//删除节点
					}
				}
			}
			createXml(document, fileName);
		} catch (Exception e) {
			System.out.println("发生异常");
			System.exit(0);
		}
	}

 

 删除节点结果为:

 

 

<?xml version="1.0" encoding="gb2312"?>

 

<students>

  <!--this is a root-->

  <student name="C罗"></student>

</students>

 

 

分享到:
评论

相关推荐

    dom4j读写xml文档实例

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

    DOM4j操作xml文件

    DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件

    dom4j解析xml文件(增删改查)

    在“dom4j解析xml文件(增删改查)”这个主题中,我们将深入探讨如何使用DOM4J来实现XML文档的四种基本操作:增加元素、删除元素、更新元素内容以及查询元素。 首先,让我们了解DOM4J的基本用法。在解析XML文件时,...

    dom4j解析xml文件的压缩包

    5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...

    dom4j解析xml详解

    DOM4J的核心优势之一在于其丰富的接口体系,这些接口定义在`org.dom4j`包内,提供了对XML文档进行读写、查询、修改等操作的能力。 1. **Attribute**: 代表XML中的属性,可用于获取和设置属性值。 2. **Branch**: ...

    使用DOM4J对XML文件操作-添加、修改、删除、获取元素节点

    在本教程中,我们将深入探讨如何使用DOM4J来执行基本的XML操作,包括添加元素、修改元素、删除元素以及获取元素节点。 1. **添加元素节点** 在DOM4J中,添加元素节点通常涉及创建一个新的`Element`对象,然后将其...

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

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

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

    Dom4J作为一款优秀的Java XML API,以其简洁、高效的特点,在生成、解析和操作XML文档方面表现突出。本文将深入探讨如何使用Dom4J库来创建XML文档,包括初始化文档、添加元素、设置属性、插入文本以及最终保存文档至...

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

    在这个示例中,我们将深入探讨如何利用Maven管理和DOM4j来操作XML文件。 首先,让我们了解一下Maven。Maven是Apache软件基金会的一个项目,它通过定义项目对象模型(Project Object Model,POM)来管理项目的构建、...

    dom4j操作xml

    DOM4J通过创建一个对象模型来表示XML文档,使得我们可以像操作Java对象一样操作XML元素。 1. **XML解析**: - 使用`DocumentBuilderFactory`和`DocumentBuilder`类可以将XML字符串转换为`Document`对象,这是DOM4J...

    dom4j解析xml文件代码示例

    在本示例中,我们将深入探讨如何使用DOM4J解析XML文件,以`CacheInit.java`作为我们的核心代码示例,并参考`emailTemplateConfig.xml`作为实际操作的对象。 首先,让我们了解XML(eXtensible Markup Language)。...

    dom4j解析xml

    ### DOM4J解析XML知识点详解 ...通过结合使用DOM4J的基本类和XPath表达式,可以轻松地实现对XML文档的查询和修改。无论是对于开发人员还是对于那些需要频繁处理XML数据的应用程序来说,DOM4J都是一个非常有价值的工具。

    利用Dom4j生成XML和解析XML

    在本文中,我们将学习如何使用 Dom4j 生成 XML 文档和解析 XML 文档。 生成 XML 文档 使用 Dom4j 生成 XML 文档非常简单。首先,我们需要创建一个 Document 对象,然后添加元素和属性。下面是一个生成 XML 文档的...

    dom4j操作XMl例子

    在本示例中,"dom4jExample.java"是一个Java程序,它展示了如何利用DOM4J库来操作XML文件。 首先,我们需要了解DOM4J的基本概念。DOM4J采用Document Object Model (DOM)接口,但它的实现比标准DOM更快,占用内存更...

    用dom4j解析xml文件

    本篇文章将深入探讨如何使用DOM4J来解析XML文件,以及通过示例代码来展示其基本操作。 首先,我们需要理解DOM4J的工作原理。DOM4J采用的是DOM(Document Object Model)模型,它将整个XML文档加载到内存中形成一棵...

    dom4j-jar与dom4j解析xml文档介绍

    "以及解析xml文档所用的pdf文档说明"则表明还有一个PDF文档,可能详细介绍了如何使用dom4j来解析XML文件,包括各种方法、类和接口的使用示例。 **dom4j解析XML文档知识点:** 1. **dom4j简介**:dom4j是一个开放...

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

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

    dom4j解析xml实例

    通过学习和实践这些基本操作,你可以熟练掌握DOM4J解析XML的技巧,为你的Java项目中处理XML数据提供强大的支持。在项目中遇到具体问题时,可以参考DOM4J的官方文档,或利用在线资源进行更深入的学习。

Global site tag (gtag.js) - Google Analytics