//http://www.dom4j.org官方网址
public class DOM4JTest {
public static void main(String[] args){
//创建文档
Document doc = DocumentHelper.createDocument();
//创建根元素
//Element root = DocumentHelper.createElement("students");
//把根元素加入到文档
//doc.setRootElement(root);
//这样不会清除处理指令
Element root = doc.addElement("students");
//创建三个Element对象,分别加入到各自的对象中
Element stu1 = root.addElement("student");
//设置属性
stu1.addAttribute("sn", "01");
Element name1 = stu1.addElement("name");
Element age1 = stu1.addElement("age");
//设置文本属性
name1.setText("张三");
age1.setText("18");
//创建三个Element对象,分别加入到各自的对象中
Element stu2 = root.addElement("student");
//设置属性
stu2.addAttribute("sn", "02");
Element name2 = stu2.addElement("name");
Element age2 = stu2.addElement("age");
//设置文本属性
name2.setText("李四");
age2.setText("28");
/**
//创建PrintWriter对象
PrintWriter pw = new PrintWriter(System.out);
try {
//文档写到这个PW指定地方
doc.write(pw);
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
*/
//创建OutputStream对象,设置格式和是否换行
OutputFormat opf = new OutputFormat(" ",true);
//设置编码
opf.setEncoding("utf-8");
try {
//XMLWriter xml = new XMLWriter(opf);
//输出到其它地方,要自己关闭
XMLWriter xml = new XMLWriter(new FileOutputStream("langhua.xml"), opf);
//用XMLWriter把doc对象写到对应的输出流FileOutputSteam
xml.write(doc);
//xml.close其实是关闭FileOutputStream
xml.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//Visitor模式
public class VisitorDom4JTest {
//Visitor是接口,VisitorSupport是实现类,但是是空实现
//这样在使用的时候只用extends VisitorSupport类
//因为这样不用实现所有的方法
VisitorSupport vs = null;
public static void main(String[] args){
//创建一个SAXReader对象来读取XML文档
SAXReader sax = new SAXReader();
try {
//读取一个XML文档,返回一个Document对象
Document doc = sax.read(new File("students.xml"));
//应该是一个遍历,遍历这个doc中所有的Node
doc.accept(new MyVisitor());
} catch (DocumentException e) {
e.printStackTrace();
}
}
private static class MyVisitor extends VisitorSupport{
//遇到属性节点
public void visit(Attribute node) {
System.out.println("Attribute:"+node.getName()+"="+node.getValue());
}
//元素节点
public void visit(Element node) {
//看这个元素是否只包括文本信息
if(node.isTextOnly()){
System.out.println("Element:"+node.getName()+"="+node.getText());
}else{
System.out.println("Not only Element:"+node.getName());
}
}
}
}
分享到:
相关推荐
### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...
DOM4J是一个强大的Java库,专门用于解析XML文档。它提供了简单易用的API,使得开发者可以更加方便地处理XML数据。DOM4J的核心优势在于它的面向接口编程设计,这使得它能够在不同的解析机制间灵活切换,如DOM、SAX和...
"dom4j-jar与dom4j解析xml文档介绍" 这个标题告诉我们,我们将探讨的是一个关于dom4j库的jar文件,以及如何使用这个库来解析XML文档。dom4j是一个Java库,它提供了丰富的API用于处理XML、HTML和DOM文档。这里的"jar...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单且高效的API来读取、写入、修改以及操作XML。在这个实例中,我们将深入理解DOM4J库如何帮助我们处理XML文档,并通过实际操作来熟悉其核心功能。 XML...
Java提供了多种解析XML的API,包括SAX(Simple API for XML)、DOM(Document Object Model)以及DOM4J。下面我们将详细探讨这些解析方式及其在实际开发中的应用。 1. SAX解析器: SAX是一种基于事件驱动的解析器,...
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...
2. **解析XML文档**: - 使用`Document`对象及其子类提供的方法来查询和修改XML文档。 - 主要通过XPath表达式来定位XML文档中的特定节点或元素。 3. **输出XML文档**: - 将修改后的`Document`对象写回到XML文件...
**DOM4J解析XML** DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效且功能丰富的API,使得XML的读取、创建、修改和查询变得简单易行。DOM4J的主要特点包括对XPath的支持、事件驱动的解析、以及与...
Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。DOM4J的名字来源于DOM(Document Object Model)和Java的结合,但它的设计理念比标准DOM更先进...
在提供的视频资源"17-dom4j解析xml文档(增删改查).avi"中,可能详细展示了这些操作的步骤和示例,观看该视频将进一步加深你对DOM4J操作XML的理解。记得实践是检验理论的最好方式,动手操作会让你更好地掌握这些知识...
**DOM4J解析XML实例详解** 在Java编程中,处理XML文档是一项常见的任务。DOM4J是一个非常流行的、强大的Java XML API,它提供了灵活且高效的方式来解析、创建、修改XML文档。本文将深入探讨如何使用DOM4J进行XML...
在本文中,我们将学习如何使用 Dom4j 生成 XML 文档和解析 XML 文档。 生成 XML 文档 使用 Dom4j 生成 XML 文档非常简单。首先,我们需要创建一个 Document 对象,然后添加元素和属性。下面是一个生成 XML 文档的...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单且灵活的API,使得XML解析、创建、修改和查询变得容易。在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而直观的方式来解析、创建、修改和操作XML数据。在本教程中,我们将深入探讨如何使用DOM4J解析(读取)XML节点数据,不受XML层级的限制。 首先,确保你...
Dom4j是一个基于Java的开源项目,它实现了DOM、SAX和JDOM等解析器的接口,并提供了一种更方便的方式来处理XML文档。它支持XPath查询,能够方便地创建、修改和查询XML结构。 **读取XML文档:** 1. **添加依赖**:在...
【使用dom4j解析XML】 dom4j是一个强大的开源XML框架,它提供了处理XML文档的各种功能,包括解析、创建、修改等。相比W3C DOM API,dom4j的优势在于其内置的XPath支持,允许更方便地定位和操作XML文档中的节点。 *...