`
jackroomage
  • 浏览: 1217584 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

自己复习用的Dom4j生成xml与解析xml

    博客分类:
  • XML
阅读更多

1、解析xml

<?xml version="1.0" encoding="gbk"?>
<a>
<user id="1">
<name>jack</name>
<age>23</age>
</user>

<user id="2">
<name>lucy</name>
<age>22</age>
</user>
</a>

------------------------------------------------------------------------------------

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

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;


public class MyXMLReader {   
   
    public static void main(String[] arge) {   
     
             try {
                SAXReader reader=new SAXReader();
     Document doc=reader.read(new File("c://test2.xml"));
           Element root= doc.getRootElement();
           Iterator iterator=root.elementIterator("user");
           while(iterator.hasNext()){
           Element user=(Element)iterator.next();
           String id=user.attributeValue("id");
           System.out.println("id号码:"+id);
           String name=user.elementText("name");
           System.out.println("用户名字:"+name);
           String age=user.elementText("age");
           System.out.println("年龄:"+age);
           }
    } catch (Exception e) {
     e.printStackTrace();
    }

            }
}
==========================================================

2、生成xml文档与修改xml文档

import java.io.FileWriter;
import java.io.Writer;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;


public class Dom4JXML {
 public void createXML(){
   Document doc=DocumentHelper.createDocument();
   Element rootEle=doc.addElement("emps");
   rootEle.addComment("这是一个dom4j生成的XML文件");
   Element empEle=rootEle.addElement("emp");
   empEle.addAttribute("id", "1");
   Element nameEle=empEle.addElement("name");
   nameEle.setText("jack");
   Element sexEle=empEle.addElement("sex");
   sexEle.addText("man");
   try{
    Writer out=new FileWriter("c://emps.xml");
    OutputFormat format = OutputFormat.createPrettyPrint();
    format.setEncoding("GBK");
             XMLWriter writer=  new XMLWriter(out,format);
             writer.write(doc);
             writer.close();
             System.out.println("生成的emps.xml成功。");
   }catch(Exception e){
    e.printStackTrace();
   }
 }

         public void updateXML(){
         
           try {
          SAXReader reader= new SAXReader();
    Document doc=reader.read("c://emps.xml");
    List listId=doc.selectNodes("//emps//emp//@id");
    Iterator idIterator=listId.iterator();
    while(idIterator.hasNext()){
     Attribute attribute=(Attribute)idIterator.next();
     attribute.setValue("001");
    }
     List listName=doc.selectNodes("//emps//emp//name");
     Iterator nameIterator=listName.iterator();
     while(nameIterator.hasNext()){
    Element eleName= (Element)nameIterator.next();
    eleName.setText("张三");
     }
    
     List listSex=doc.selectNodes("//emps//emp");
     Iterator sexIterator=listSex.iterator();
     while(sexIterator.hasNext()){
                   Element eleSex=(Element)sexIterator.next();
                    Iterator ite=eleSex.elementIterator("sex");
                     while(ite.hasNext()){
                    Element sexEle=(Element)ite.next();
                    eleSex.remove(sexEle);
                   
                     }
     }
     Writer out=new FileWriter("c://emps(update).xml");
     OutputFormat format = OutputFormat.createPrettyPrint();
     format.setEncoding("GBK");
              XMLWriter writer=  new XMLWriter(out,format);
              writer.write(doc);
              writer.close();
              System.out.println("生成的emps(update).xml成功。");
    
        } catch (Exception e) {
   
    e.printStackTrace();
   }
         }
         public static void main(String[] args){
               Dom4JXML dom4jxml=new Dom4JXML();
                       dom4jxml.createXML();
                      dom4jxml.updateXML();
         }

 

}

 

分享到:
评论

相关推荐

    2020年 json,xml,ajax封装.rar

    2. XML的结构和解析:了解XML的基本结构,如元素、属性、命名空间,以及如何使用DOM(Document Object Model)或SAX(Simple API for XML)等解析器来处理XML文档。 3. AJAX的基础知识:理解异步请求的工作原理,...

    NIIT数据结构和XML 考试截图

    4. 平台和语言无关:XML数据可以在任何支持XML的平台或编程语言中解析和生成。 在XML相关的考试中,可能涉及: 1. XML的基本语法,如声明、元素、属性、注释、实体引用等。 2. DTD(文档类型定义)或XML Schema...

    系统分析师最新资料

    * 使用 JSP 技术生成 XML 文档,然后使用 XML 解析器解析和处理数据。 XML 的特点 XML 的特点是: * 自由扩展性:XML 可以根据需要定义标记和结构。 * 平台独立性:XML 可以在不同的平台上运行。 * 数据交换性:...

    系统分析师复习资料.doc

    - **XML与JSP集成方案**:通过JSP的JSTL(JavaServer Pages Standard Tag Library)和DOM或SAX解析XML文档,将数据呈现到网页上。 - **XML的优越性**:XML提供了自定义标签的能力,适用于跨平台数据交换,且有丰富...

    最新系统分析师复习资料-知识点分类总结(PDF)

    - **灵活性**:XML可以用来存储和传输各种类型的数据,而JSP则负责动态生成XML文档或解析XML数据。 - **可扩展性**:XML的数据格式易于扩展,可以轻松地适应新的数据需求,而JSP则可以灵活地处理这些变化。 9. **...

    系统分析师考试复习资料

    - **SAX**:适用于大型文件的处理,它采用事件驱动的方式逐行解析XML文档,节省内存资源。 - **DOM**:将整个XML文档加载到内存中,并提供一个树状结构来访问和操作文档节点。 **1.11 什么类型的SAX 事件被SAX 解析...

    JavaScript XML和string相互转化实现代码

    综上所述,从提供的代码片段中,我们不仅学习到了如何编写能够处理浏览器差异的XML与String转换函数,也复习了XML的基础知识、DOM解析器的作用以及在Web开发中XML数据的应用情况。同时,我们也讨论了JSON在数据交换...

    最新系统分析师考试复习资料

    ### 最新系统分析师考试复习资料知识点汇总 #### 一、开发技术:语言与平台 - **JavaBean组件模型特点** - JavaBean 是一种 Java 类,它遵循特定的编写规范,通常用来封装业务逻辑或数据。 - **封装性**:...

    java基础复习笔记(第一阶段)

    学习DOM、SAX和StaX等解析XML的方法,以及JAXB进行对象到XML和XML到对象的转换。 9. **JSON处理**:JSON(JavaScript Object Notation)轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。熟悉...

    Java工程师面试集

    - **解析XML**:DOM、SAX和StAX等解析方式及其应用场景。 - **XSLT**:转换XML文档以生成不同的表示形式。 - **XML Schema**:用于定义XML文档的结构和数据类型。 - **XML与Java的结合**:如使用JAXB进行XML和...

    最新系统分析师考试复习资料(精简整理版).pdf

    - **XML解析**:在服务器端使用SAX或DOM解析XML数据,并在JSP中显示结果。 - **XSL-FO**:用于生成复杂布局的PDF或打印文档。 ### 知识点六:DOM与SAX #### DOM - **全称**:Document Object Model,文档对象模型...

    最新系统分析师考试复习资料(精简整理版).pdf

    - **灵活性**:JSP 可以根据需要动态生成 XML 内容。 - **XML 的特点** - **开放性**:基于标准的文本格式,容易阅读和理解。 - **结构化**:使用标签来组织数据。 - **可扩展性**:可以自定义标签来适应不同的...

    y2考试复习题.pdfy2考试复习题.pdf

    ### y2考试复习题知识点详解 #### 1. 定义EJB的Home接口时应继承的接口 **知识点:** EJB (Enterprise JavaBeans) 是 J2EE 架构中的一个重要组成部分,主要用于处理业务逻辑。在定义 EJB 的 Home 接口时,需要继承...

    数据库系统复习提纲.docx

    8. **DOM(文档对象模型)**:DOM是W3C标准,提供了一种与语言无关的方式来表示和操作XML文档的结构。 9. **JSON(JavaScript对象表示法)**:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器...

    JavaWeb开发技术补考复习.rar

    Java提供了JSON-P、Jackson、Gson等库来处理JSON,而JavaDOM、SAX、StAX等则用于解析XML。 9. **Maven或Gradle**:项目构建工具,管理依赖、构建流程,使得项目结构更加规范,协同开发更高效。 10. **Eclipse或...

    android复习资料

    - 可以使用DOM、SAX或Pull等解析器解析XML文件。 - **Android通讯录的读写操作** - 通过`ContentResolver`和`ContactsContract`类访问通讯录。 - **Android联网读取文件** - 可以使用`HttpURLConnection`或第三...

    2018JavaWeb复习题答案.pdf

    18. 在解析XML文档时,"耿祥义"是元素`&lt;author&gt;`的文本内容,因此是文本对象,不是元素对象。 19. JSP表达式`()%&gt;`将Java表达式的结果直接输出到HTML响应中,如果`login.getName()`返回的是用户登录名,那么这句话...

    《数据》期末复习题.docx

    14. DOM(Document Object Model):解析HTML和XML文档的树形结构,用于动态更新网页内容。 15. 运算符优先级:理解不同运算符的执行顺序,对编写正确程序至关重要。 16. 数据库范式:如第一范式(1NF)、第二范式...

Global site tag (gtag.js) - Google Analytics