`
nightbin0420
  • 浏览: 8876 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

dom4j读写xml例子

XML 
阅读更多

package com.hw.DOM4J;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentFactory;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import com.hw.MyException;

/**
 * @author Administrator
 * 
 *   获取节点的文字
 *   String text=memberElm.getText();
 *   或者可以用  String text=root.elementText("name");
 *
 *
 *
 */
public class TestDemo extends MyException{
 
 
  public TestDemo(String message) {
  super(message);
  // TODO Auto-generated constructor stub
 }

 /**
  *
  */
 

 public static void main(String[] args) {
   String pathname="src/com/hw/xiongmao2.xml";//(另一种格式d:\\xiongmao.xml)
   File file=new File(pathname);
   Element root=null;
   boolean flag=false;
   XMLWriter writer=null;
   Document doc=null;
   OutputFormat format=null;
   try {
    //声明写xml的对象
    //
   format=OutputFormat.createPrettyPrint();
    format.setEncoding("GBK");//设置xml文件的编码格式 
   //判断文件是否存在
    if(file.exists()){
    SAXReader reader=new SAXReader();
   
   
   
    doc=reader.read(file);//读取xml文件
   
   
   
   root=doc.getRootElement();//得到根结点
   
   
   Element xiongmao=null;
   Element name=null;
   
   
   for(Iterator iterator=root.elementIterator("xiongmao");iterator.hasNext();){
    xiongmao=(Element) iterator.next();
    
    String belong=xiongmao.attributeValue("belong");//获得belong属性
    System.out.println(belong);
    
    String username=xiongmao.elementText("name");//获得name元素值
    
    System.out.println(username);
    //如果有多个name元素,则如下:
    for(Iterator iterator2=xiongmao.elementIterator("name");iterator2.hasNext();){
     name=(Element) iterator2.next();
     String id=name.attributeValue("id");
     
     System.out.println(id);
     //通过迭代得到name元素值
     System.out.println(name.getText());
     System.out.println(name.getData());
    }
    //得到birthdate元素
    String birthdate=xiongmao.elementText("birthdate");
    System.out.println(birthdate);
    
    //修改
    if(xiongmao.attributeValue("belong").equals("zhangbin")){
     //修改belong="zhangbin"的信息
     
     //只能修改一个name元素的值
        xiongmao.selectSingleNode("name").setText("baby");
     xiongmao.selectSingleNode("height").setText("167");
     System.out.println("---修改成功---");
     writer=new XMLWriter(new FileWriter(file),format);
     writer.write(doc);
     writer.close();
     flag=true;
     break;
    }
   }
   
   
   //添加一个xiongmao
   if(flag){
    
   Element  mao=root.addElement("xiongmao");
   mao.addAttribute("belong", "zhangbin1");
   
   Element name_name1=mao.addElement("name");
   name_name1.addAttribute("id", "03");
   name_name1.setText("sweet cat");
   
   Element name_name2=mao.addElement("name");
   name_name2.addAttribute("id", "04");
   name_name2.setText("darling");
   
   
   Element _height=mao.addElement("height");
   _height.setText("162");
       
   try {
    writer=new XMLWriter(new FileWriter(file),format);
    writer.write(doc);
    writer.close(); 
    System.out.println("---添加成功---");
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  
   
   }
   
    }
   
   
   
   
    else {
    //新建xiongmao2.xml
    
     //创建 document
     Document _dDocument=DocumentFactory.getInstance().createDocument();
    
    
    
     // 创建下列元素
     Element _root=_dDocument.addElement("xiongmaos");//创建根元素
     //注意目录元素,不能随便创建  需要与根元素对应
     _root.addAttribute("xiongmao", "http://www.baidu.com");
    
     Element  mao=_root.addElement("xiongmao");
     mao.addAttribute("belong", "zhangbin1");
     
     Element name_name1=mao.addElement("name");
     name_name1.addAttribute("id", "03");
     name_name1.setText("sweet cat");
     
     Element name_name2=mao.addElement("name");
     name_name2.addAttribute("id", "04");
     name_name2.setText("darling");
     
     
     Element _height=mao.addElement("height");
     _height.setText("162");
    
    
     writer=new XMLWriter(new FileWriter(file),format);
     writer.write(_dDocument);
     writer.close(); 
     System.out.println("---创建成功---");
     
    throw new MyException("file不存在");
   }
  } catch (DocumentException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (MyException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 

 }
 
 

}

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    dom4j操作XMl例子

    这个程序通过DOM4J库实现了对XML文档的创建、读取、修改和保存。对于XML处理,DOM4J提供了一种高效且易于使用的解决方案,尤其适合Java开发者。标签"dom4j"和"xml"进一步强调了这个示例是关于使用DOM4J库处理XML文档...

    dom4j 解析xml例子

    在这个“dom4j解析xml例子”中,我们将深入探讨DOM4J如何帮助开发者在Java环境中有效地处理XML数据。 首先,我们需要了解XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置...

    dom4j_XML.rar_DOM4J_dom4j xml java_java xml_读写xml

    例子比较简单”的描述中,我们可以推断出这个压缩包包含了一些关于如何使用DOM4J进行XML读写的基本示例。以下是对这些关键知识点的详细解释: 1. **XML解析**:DOM4J支持两种解析XML文档的方式:SAX(Simple API ...

    Dom4j例子,可以解析大部分的XML

    Dom4j因其简单易用、高效性能以及对DOM(Document Object Model)和SAX(Simple API for XML)的扩展支持而备受青睐。 1. **DOM与DOM4j的区别** DOM是W3C定义的一种标准模型,用于表示XML文档的树结构。然而,DOM...

    dom4j关于xml读写的例子里面还有dom4j的jar包

    除了基本的读写操作,DOM4J还支持XPath查询,这是一种强大的定位XML元素的方式。通过`XPathExpression`和`XPathFactory`,你可以编写XPath表达式来查找XML文档中的特定节点。例如,`//elementName`可以匹配所有名为`...

    使用dom4j对xml的读写

    **使用DOM4J对XML的读写** DOM4J是一个非常强大的Java库,专门用于处理XML文档。它提供了丰富的API,使得XML的读取、创建、修改和解析变得简单易行。相较于JDOM,DOM4J确实提供了更多的功能,虽然在学习曲线方面...

    dom4j 解析xml实例

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单且灵活的API,使得XML解析、...这只是一个简单的例子,DOM4J库还提供了更高级的功能,如XPath查询、事件驱动的处理模式等,可以满足更复杂的XML处理需求。

    dom4j_XML.rar_DOM4J_dom4j xml

    总之,DOM4J是处理XML的强大工具,通过使用这个库,开发者可以方便地对XML进行读写、查询和修改。这个"dom4j_XML.rar"压缩包中的实例教程,对于学习和掌握DOM4J的操作技巧,无疑是一份宝贵的资源。

    用 dom4j解析xml例子

    - **XML Schema和DTD验证**:DOM4J还支持对XML文档进行Schema和DTD验证,确保数据的完整性和正确性。 - **XPath查询**:DOM4J支持XPath表达式,使得复杂的数据定位和提取更加容易。 - **事件驱动的解析**:除了基于...

    java 操作xml 源码(包括dom dom4j 读写XML)

    java操作xml源码 操作方式包括:dom和dom...dom4j是开源的性能以及效率最好的,也是一个典型例子。 本源码下下来运行test.java直接运行。 其中包括:采用dom写xml 以及dom方式读XML 采用dom4j写xml 以及dom4j方式读XML

    dom4j-xml.rar_DOM4J

    3. **修改XML文档**:通过DOM4J,可以方便地对XML文档进行修改,比如插入、删除、替换节点,或者修改属性值。 4. **查询XML文档**:DOM4J支持XPath表达式,这是一种强大的查询XML文档的语言,能够快速定位到文档中...

    dom4j读写xml文件

    在这个小例子中,我们将探讨如何利用DOM4J来实现XML文件的读写操作。首先,我们需要确保引入了必要的依赖,包括`dom4j-1.6.1.jar`和`jaxen-1.1-beta-6.jar`这两个库。`jaxen`库是DOM4J中解析XPath表达式所必需的。 ...

    dom4j解析xml,连接oracle数据库

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而灵活的API,使得XML解析、创建、修改和查询变得容易。在本实例中,我们将深入探讨如何使用DOM4J解析XML,并利用这些数据连接Oracle数据库进行数据操作...

    dom4j 解析xml文件小例子

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。在本例中,我们将深入探讨如何使用DOM4J来解析XML文件。 首先,我们需要理解XML(Extensible ...

    dom4j解析xml

    ### DOM4J解析XML DOM4J是一种Java语言下的轻量级XML处理库,它可以方便地解析、修改和创建...无论是简单的文件读写还是复杂的XML文档构建,DOM4J都能胜任。希望本教程能够帮助大家更好地理解和掌握DOM4J的应用技巧。

    dom4j解析xml.txt

    ### DOM4J解析XML知识点详解 #### 一、DOM4J简介 ...通过对DOM4J库的学习和实践,可以高效地处理各种复杂的XML文档需求。无论是创建新的XML文件还是从现有的XML文件中提取数据,DOM4J都能提供强大的支持。

    用dom4j解析xml小例子

    XML(eXtensible Markup Language)是一种用于...对于初学者来说,通过上述的小例子,可以快速上手并深入理解DOM4J在XML处理中的应用。通过不断的实践和学习,开发者可以充分利用DOM4J来满足各种复杂的XML处理需求。

    Dom4j解析配置文件与xml小例子

    本篇将通过一个实际的例子来探讨如何使用Dom4j解析XML配置文件。 首先,我们需要了解DOM4J的基本概念。DOM(Document Object Model)是一种用于表示XML或HTML文档的标准模型,而Dom4j是基于DOM的,但它比标准的DOM...

    Java用DOM4J读取XML

    下面是一个简单的例子,展示了如何使用DOM4J读取一个XML文件: ```java package com.hsinghsu.testXML; import java.io.File; import java.util.Iterator; import org.dom4j.Attribute; import org.dom4j.Document...

    Dom4j遍历解析XML

    ### Dom4j遍历解析XML知识点详解 #### 一、Dom4j简介及环境搭建 Dom4j(Document Object Model for Java)是一个Java语言的开源XML API,它提供了非常便捷...这种方式非常适合于需要对XML数据进行复杂递归处理的情况。

Global site tag (gtag.js) - Google Analytics