需要导入Dom4j的一个Jar文件:
Dom4j创建XML
package com.shengsiyuan.dom4j;
import java.io.FileOutputStream;
import java.io.FileWriter;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class Test1
{
public static void main(String[] args) throws Exception
{
// 创建文档并设置文档的根元素节点 :第一种方式
// Document document = DocumentHelper.createDocument();
//
// Element root = DocumentHelper.createElement("student");
//
// document.setRootElement(root);
// 创建文档并设置文档的根元素节点 :第二种方式
Element root = DocumentHelper.createElement("student");
Document document = DocumentHelper.createDocument(root);
//给根元素添加属性
root.addAttribute("name", "zhangsan");
//给根元素添加子元素
Element helloElement = root.addElement("hello");
Element worldElement = root.addElement("world");
//设置元素的文本内容
helloElement.setText("hello");
worldElement.setText("world");
//给hello元素添加属性
helloElement.addAttribute("age", "20");
//将XML文档输出到命令行
XMLWriter xmlWriter = new XMLWriter();
xmlWriter.write(document);
//指定输出格式,第一个参数表示缩进,第二个参数表示是否换行
OutputFormat format = new OutputFormat(" ", true);
//以字节流的方式输出到文件
XMLWriter xmlWriter2 = new XMLWriter(new FileOutputStream("student2.xml"), format);
xmlWriter2.write(document);
//以字符流的方式输出到文件
XMLWriter xmlWriter3 = new XMLWriter(new FileWriter("student3.xml"), format);
xmlWriter3.write(document);
//xmlWriter3.flush();//当你使用字符流输出的时候,需要有这个刷新的方法,否则没有结果输出
xmlWriter3.close();//close方法中包含xmlWriter3的flush方法,所以这个方法也可以
}
}
Dom4j解析XML
package com.shengsiyuan.dom4j;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.DOMReader;
import org.dom4j.io.SAXReader;
public class Test2
{
public static void main(String[] args) throws Exception
{
//Dom4j解析XMl方式一:使用SAXReader解析XML
SAXReader saxReader = new SAXReader();
//读取文档
Document doc = saxReader.read(new File("student2.xml"));
//得到根元素
Element root = doc.getRootElement();
System.out.println("root element: " + root.getName());
//得到根元素下的所有子元素
List childList = root.elements();
System.out.println(childList.size());
//得到根元素下的所有名字为hello子元素
List childList2 = root.elements("hello");
System.out.println(childList2.size());
//得到根元素下的第一个名字为hello的子元素
Element first = root.element("hello");
//得到hello元素下的属性为age的值
System.out.println(first.attributeValue("age"));
//遍历根元素下的子元素的第二种方法,第一种是使用List
for(Iterator iter = root.elementIterator(); iter.hasNext();)
{
Element e = (Element)iter.next();
//获得子元素属性为age的值,没有age属性,输出null
System.out.println(e.attributeValue("age"));
}
System.out.println("---------------------------");
//Dom4j解析XMl方式二:使用DOMReader解析XML
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
//在一个项目中使用了名字相同的一个类,使用包名区分
org.w3c.dom.Document document = db.parse(new File("student2.xml"));
DOMReader domReader = new DOMReader();
//将JAXP的Document转换为dom4j的Document
Document d = domReader.read(document);
Element rootElement = d.getRootElement();
System.out.println(rootElement.getName());
}
}
分享到:
相关推荐
在这个主题中,我们将深入探讨DOM4j如何帮助我们创建和解析XML文档,以及其背后的原理和用法。 首先,DOM4j采用了Document Object Model(DOM)的概念,但它比标准的Java DOM实现更加轻量级,性能更优。DOM4j的核心...
- **dom4j+jaxen操作XML**:首先使用dom4j解析XML,然后通过jaxen创建XPath对象并执行查询。查询结果可以是元素、属性或其他XML节点,根据需要进行进一步处理。 例如,以下代码展示了如何使用dom4j和jaxen解析XML...
### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...
下面我们将深入探讨DOM4J在创建和解析XML方面的知识。 首先,创建XML文档主要通过Document对象实现。在DOM4J中,我们可以使用DocumentFactory来创建一个新的Document实例,然后添加Element、Attribute等节点。例如...
在提供的“analysis_xml”项目中,很可能包含了一个示例,演示了如何使用dom4j的SAX解析器解析XML文件。这样的测试项目有助于理解SAX解析的工作原理,并在实际开发中应用。 总结起来,dom4j库提供了DOM和SAX两种XML...
在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行的、功能强大的开放源代码库。这个库不仅简化了XML处理,还提供了XPath和XSLT的支持,使其成为Java开发者处理XML的首选工具之一。 **...
### DOM4J创建与解析XML文档详解 #### 一、DOM4J简介 DOM4J是一种基于Java的轻量级XML处理库,它提供了一种简单直观的方式来读取、写入和修改XML文档。DOM4J是开源的,并且遵循Apache 2.0许可协议。与Java自带的...
本篇文章将详细介绍如何使用DOM(Document Object Model)和DOM4j这两种流行的方法来解析XML文件。 首先,DOM是一种标准的W3C推荐的解析XML的方法,它将整个XML文档加载到内存中,形成一个树形结构,便于程序进行...
1. DOM4J解析XML 当我们处理XML文档时,首先需要将其加载到内存中。DOM4J提供了Document接口来表示整个XML文档。使用SAXReader类可以从XML文件创建一个Document对象。例如: ```java SAXReader reader = new ...
"Dom4j 生成 XML 和解析 XML" Dom4j 是一个 Java 库,用于处理 XML 文档。它提供了生成和解析 XML 文档的功能。在本文中,我们将学习如何使用 Dom4j 生成 XML 文档和解析 XML 文档。 生成 XML 文档 使用 Dom4j ...
要开始解析XML文件,首先需要导入DOM4J的相关包: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; ``` 接下来,我们将创建...
为了使用这个库,你需要将该jar包添加到项目的类路径中,然后就可以通过DOM4J提供的类和方法来解析和操作XML文件了。 总之,DOM4J是一个功能强大的XML处理库,无论是在小型项目还是大型系统中,都能发挥其优势,...
使用DOM4J创建XML文件通常涉及以下步骤: - 创建`Document`对象,这代表XML文档的根节点。 - 创建`Element`对象并添加到`Document`中,表示XML文档的元素层次结构。 - 添加`Attribute`,为元素设置属性。 - ...
使用DOM4J解析XML,首先需要导入DOM4J库,然后使用`DocumentHelper`类的`parseText()`或`parse()`方法。比如: ```java Document doc = DocumentHelper.parseText(new File("testxml.xml").getText()); Element root...
本篇文章将深入探讨如何使用Dom4j,一个流行的Java库,结合XPath来解析XML文件中的路径表达式,同时阐述相对路径和绝对路径的匹配原则。 首先,我们要了解Dom4j库。Dom4j是一个灵活且高效的处理XML的Java库,它提供...
在Java中,解析XML文件是常见的任务,通常有DOM(Document Object Model)和DOM4J两种方式。下面我们将详细探讨这两种解析方法。 DOM解析方式是将整个XML文件加载到内存中,形成一棵DOM树,每个节点代表XML文档的一...
**使用DOM4J创建XML文件刘宝宝版** 在Java编程中,DOM4J是一个非常流行的XML处理库,它提供了丰富的API来操作XML文档,包括创建、解析、修改和查询XML。下面我们将详细介绍如何使用DOM4J来创建一个XML文件。 首先...
标题中的“通过Dom4j创建和读取xml文件”指的是使用Java库Dom4j来处理XML文档的操作。Dom4j是一个灵活且功能丰富的Java XML API,它提供了多种方式来解析、创建、修改XML文档。本知识点主要涵盖以下几个方面: 1. *...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,...通过`dom4j-1.6.1.jar`和`jaxen-1.1.1.jar`这两个jar包,开发者可以获得完整的DOM4J功能,实现XML的解析、构建、查询和转换等一系列操作。