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

dom4j 操作 XML

    博客分类:
  • XML
XML 
阅读更多
1.导入dom4j-1.6.1.jar
2.导入jaxen-1.1.1.jar
package com.hwp.test;

import java.io.*;
import java.util.*;

import org.dom4j.*;
import org.dom4j.io.*;

/** *//**
 * 
@author 惠万鹏
 * 
 
*/

public class XmlTest
{
    
/** *//**
     * <p>
     * 写XML文件
     * </p>
     * 
     * 
@param fileName
     *            文件名
     * 
@param document
     *            文档
     * 
@return isWritedSuccessful 写XML是否成功
     
*/

    
public static boolean writeXML(String fileName, Document document)
    
{
        
boolean isWritedSuccessful = false;
        XMLWriter writer 
= null;
        
try
        
{
            OutputFormat format 
= OutputFormat.createPrettyPrint();
            format.setEncoding(
"UTF-8");
            writer 
= new XMLWriter(new FileOutputStream(fileName), format);
            writer.write(document);
            isWritedSuccessful 
= true;
        }

        
catch (Exception e)
        
{
            e.printStackTrace();
        }

        
finally
        
{
            
if (writer != null)
            
{
                
try
                
{
                    writer.close();
                }

                
catch (Exception e)
                
{
                    e.printStackTrace();
                }

            }

        }

        
return isWritedSuccessful;
    }

    
    
/** *//**
     * <p>
     * 根据文件名创建XML
     * </p>
     * 
     * 
@param fileName
     *            文件名
     * 
@return 是否创建成功
     
*/

    
public static boolean createStudentXML(String fileName)
    
{
        Document document 
= DocumentHelper.createDocument();
        document.addComment(
"99级1班学生信息");
        document.addElement(
"students");
        
return XmlTest.writeXML(fileName, document);
    }

    
    
/** *//**
     * <p>
     * 根据文件名得到Document
     * </p>
     * 
     * 
@param fileName
     *            文件名
     * 
@return document
     
*/

    
public static Document getStudentXMLDocument(String fileName)
    
{
        SAXReader saxReader 
= new SAXReader();
        
try
        
{
            
return saxReader.read(new File(fileName));
        }

        
catch (Exception e)
        
{
            e.printStackTrace();
        }

        
return null;
    }

    
    
/** *//**
     * <p>
     * 向XML里插入一条信息
     * </p>
     * 
     * 
@param fileName
     * 
@param id
     * 
@param name
     * 
@return
     
*/

    
public static boolean addStudentInfo(String fileName, String id, String name)
    
{
        Document document 
= XmlTest.getStudentXMLDocument(fileName);
        
if (document == null)
        
{
            
return false;
        }

        
        Element eStudents 
= document.getRootElement();
        Element eStudent 
= eStudents.addElement("student");
        eStudent.addAttribute(
"id", id);
        Element eName 
= eStudent.addElement("name");
        eName.setText(name);
        
return XmlTest.writeXML(fileName, document);
    }

    
    
/** *//**
     * <p>
     * 根据id删除相应的student信息
     * </p>
     * 
     * 
@param fileName
     *            文件名
     * 
@param id
     *            studentId
     * 
@return
     
*/

    
public static boolean deleteStudentInfo(String fileName, String id)
    
{
        
boolean isDeleteSuccessful = false;
        Document document 
= XmlTest.getStudentXMLDocument(fileName);
        
if (document == null)
        
{
            
return false;
        }

        List list 
= document.selectNodes("/students/student[@id='" + id + "']");
        System.out.println(list);
        
if (list != null)
        
{
            Iterator it 
= list.iterator();
            
while (it.hasNext())
            
{
                Element eStudent 
= (Element) it.next();
                
if (eStudent != null)
                
{
                    eStudent.getParent().remove(eStudent);
                }

                isDeleteSuccessful 
= document.remove(eStudent);
            }

        }

        
if (isDeleteSuccessful)
        
{
            
return XmlTest.writeXML(fileName, document);
        }

        
return isDeleteSuccessful;
    }

    
    
/** *//**
     * <p>
     * 解析xml
     * </p>
     * 
     * 
@param fileName
     *            文件名
     * 
@return
     
*/

    
public static List<ArrayList<String>> getStudentInfo(String fileName)
    
{
        List
<ArrayList<String>> students = null;
        students 
= new ArrayList<ArrayList<String>>();
        
        Document document 
= XmlTest.getStudentXMLDocument(fileName);
        List eStudentList 
= document.selectNodes("/students/*");
        
if (eStudentList != null)
        
{
            Iterator itEStudentList 
= eStudentList.iterator();
            ArrayList
<String> student = null;
            
while (itEStudentList.hasNext())
            
{
                student 
= new ArrayList<String>();
                Element eStudent 
= (Element) itEStudentList.next();
                student.add(eStudent.attributeValue(
"id"));
                student.add(eStudent.element(
"name").getTextTrim());
                students.add(student);
            }

        }

        System.out.println(students);
        
return students;
    }

    
    
public static void main(String args[])
    
{
        String fileName 
= "c:/stu.xml";
        XmlTest.createStudentXML(fileName);
         
for(int i=0;i<10;i++)
             XmlTest.addStudentInfo(fileName,String.valueOf(i),
"惠万鹏" + i);
         
//XmlTest.deleteStudentInfo(fileName,"4");
        XmlTest.getStudentInfo(fileName);
    }

}

分享到:
评论

相关推荐

    dom4j操作xml

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

    DOM4j操作xml文件

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

    使用dom4j操作xml

    ### 使用dom4j操作XML详解 #### 一、DOM4j简介与配置 **DOM4j** 是一款专为Java平台设计的开源XML解析处理工具。它的设计充分考虑了性能和易用性,同时提供了对DOM、SAX及JAXP等标准的支持,因此非常适合进行复杂...

    Dom4j 操作 XML

    8. 使用Dom4j操作XML的优点在于它的灵活性和效率。它支持XPath查询,使得查找特定节点变得容易。同时,Dom4j使用DOM模型,允许你以面向对象的方式处理XML,而无需了解底层的解析机制。 总结来说,这段代码展示了...

    dom4j操作xml的增删改查

    本教程将详细讲解如何使用DOM4J进行XML的增、删、改、查操作。 **一、XML的基本概念** XML(eXtensible Markup Language)是一种标记语言,用于描述数据结构,通常用于存储和传输数据。DOM(Document Object Model...

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

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

    dom4j操作XMl例子

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

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

    在提供的视频资源"17-dom4j解析xml文档(增删改查).avi"中,可能详细展示了这些操作的步骤和示例,观看该视频将进一步加深你对DOM4J操作XML的理解。记得实践是检验理论的最好方式,动手操作会让你更好地掌握这些知识...

    dom4j解析xml详解

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

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

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

    JDOM、Dom4j操作xml文档

    使用Dom4j操作XML文档的方法类似,但API略有不同。例如,Dom4j提供了`DocumentFactory`用于创建`Document`,`Element`类提供了`addAttribute`、`detach`等方法,而XPath查询则通过`XPathExpression`对象完成。 总结...

    dom4j读写xml文档实例

    它提供了简单且高效的API来读取、写入、修改以及操作XML。在这个实例中,我们将深入理解DOM4J库如何帮助我们处理XML文档,并通过实际操作来熟悉其核心功能。 XML(eXtensible Markup Language)是一种用于标记数据...

    dom4j解析xml文件的压缩包

    为了使用这个库,你需要将该jar包添加到项目的类路径中,然后就可以通过DOM4J提供的类和方法来解析和操作XML文件了。 总之,DOM4J是一个功能强大的XML处理库,无论是在小型项目还是大型系统中,都能发挥其优势,...

    dom4j解析XML文件格式

    DOM4j支持DOM、SAX、JAXP等多种XML解析方式,并内置了对XPath的支持,这使得开发人员能够轻松地进行XML文件的读取、写入以及查询等操作。 **环境搭建:** 1. **下载DOM4j库:** - 前往DOM4j官方网站或其他可信源...

    dom4j_XML.rar_DOM4J_dom4j xml java_java xml_读写xml

    7. **bis和dom4j读写xml文件.files**:这两个文件可能是辅助资源,如样式表或配置文件,用于增强HTML示例的展示效果,或者包含与DOM4J操作XML相关的其他信息。 掌握DOM4J对于Java开发者来说是非常有用的,因为它能...

    用dom4j操作xml的例子

    - **灵活性**:DOM4J提供了灵活的API,使得操作XML文档变得简单。 - **效率**:虽然DOM4J使用DOM模型,但通过优化实现了相对较高的性能。 - **兼容性**:除了SAX和DOM,DOM4J还支持StAX和JDOM等其他解析器,具有...

    java 通过dom4j操作 xml

    在这个主题中,我们将深入探讨如何使用DOM4J进行XML操作。 首先,理解XML是必要的。XML(eXtensible Markup Language)是一种标记语言,用于存储和传输结构化数据。它的主要用途是作为数据交换格式,尤其是在不同的...

    dom4j操作xml文件

    它提供了灵活、高性能的方式来解析、创建、更新和操作XML。在本文中,我们将深入探讨如何利用DOM4J进行XML文件的读取、写入和修改操作。 一、XML基础 XML(Extensible Markup Language)是一种标记语言,用于存储和...

    java dom4j操作xml[转].doc

    标题与描述均指向了“Java DOM4J操作XML”的主题,这一知识点主要涵盖了如何使用DOM4J库在Java中解析、操作和生成XML文档。DOM4J是一个简单、高效的Java库,用于处理XML数据,提供了丰富的API来读取、修改和创建XML...

Global site tag (gtag.js) - Google Analytics