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

xml的生成与读取

xml 
阅读更多

1,xml的生成与读取

package com.lee.dom4j;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
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 User {
 
 private String xmlDocName = "users.xml";
 
 //创建一个xml文件
 public void newXML(){
  Document doc = DocumentHelper.createDocument();
  //创建一个根元素
  Element users = doc.addElement("users");
  doc.setRootElement(users);
  users.addComment("the xml document use to login for users");
  
  //根元素users下面的子元素
  Element user = users.addElement("user");//新增users的一个子元素
  user.addAttribute("id", "1");//增加一个user的属性,并赋值
  Element username = user.addElement("username");
  username.setText("zhangsan");
  Element password = user.addElement("password");
  password.setText("123456789");
  
  Element user2 = users.addElement("user");
  user2.addAttribute("id","2");
  Element username2 = user2.addElement("username");
  username2.setText("lisi");
  Element password2 = user2.addElement("password");
  password2.setText("987654321");
  
  //通过 org.dom4j.io.OutputFormat 来设置XML文档输出格式
  OutputFormat format = OutputFormat.createPrettyPrint();
  format.setEncoding("gbk");
  format.setSuppressDeclaration(true);
  format.setIndent(true);//设置是否缩进
  format.setIndent("  ");//以空格的方式实现缩进
  format.setNewlines(true);//设置是否换行
  
  /**
   * 通过XMLWriter 创建xml文档
   */
  try {
   XMLWriter writer = new XMLWriter(new FileOutputStream(new File(xmlDocName)),format);
   writer.write(users);
   writer.close();
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
 //读取xml文件
 public void readXML(){
  SAXReader saxReader = new SAXReader();
  //通过SAXReader读取真个文档
  try {
   Document doc = saxReader.read(new FileInputStream(new File(xmlDocName)));
   /**
    * 获取xml文档的各个元素及其值
    */
   Element users = doc.getRootElement();//取得xml文档的根元素
   
   System.out.println(" " + users.getName());
   /**
    * Iterator 集合得到根元素下的所有子元素,
    *可以指定多要得到的子元素的名称user
    */
   Iterator it = users.elementIterator("user");
   
   while(it.hasNext()){
    
    Element user = (Element)it.next();
    /**
     * 以List集合得到 user 下的所有子元素
     * 可以指定名称取得所要取的元素
     */
    List users_subElements = user.elements("username");
    
    for(int i=0;i<users_subElements.size();i++){
     
     Element ele = (Element)users_subElements.get(i);
     
     System.out.print(ele.getName() + " : " +ele.getText());
     
    }
    
    System.out.println();
   }
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (DocumentException e) {
   e.printStackTrace();
  }
 }
 
}

2,快速操作

package com.lee.dom4j;

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

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

public class SelectNodes {

 /**
  * 使用XPath快速查找
  */
 public static void main(String[] args){
     SAXReader reader = new SAXReader();
    
     try{
       Document  doc = reader.read(new File("sample.xml"));
      
       List projects=doc.selectNodes("//projectDescription/projects/project");
      
       Iterator it=projects.iterator();
      
       while(it.hasNext()){
         Element elm=(Element)it.next();      
         System.out.println(elm.getText());
       }
      
     }
     catch(Exception ex){
        ex.printStackTrace();
     }
   }

}

3,

package com.lee.dom4j;

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

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

public class Students {

 public static void main(String[] args) {

  try {
   XMLWriter writer = null;// 声明写xml对象
   SAXReader reader = new SAXReader();
   // 对生成的xml文件进行格式化
   OutputFormat format = OutputFormat.createPrettyPrint();
   format.setEncoding("gbk");

   File file = new File("student.xml");

   if (file.exists()) {
              Document document = reader.read(file);// 读取XML文件
                 Element root = document.getRootElement();// 得到根节点
                 boolean bl = false;
                 for (Iterator i = root.elementIterator("学生"); i.hasNext();) {
                     Element student = (Element) i.next();
                     if (student.attributeValue("sid").equals("001")) {
                         // 修改学生sid=001的学生信息
                         student.selectSingleNode("姓名").setText("王五ooooo");
                         student.selectSingleNode("年龄").setText("25");

                         writer = new XMLWriter(new FileWriter("student.xml"), format);
                         writer.write(document);
                         writer.close();
                         bl = true;
                         break;
                     }
                 }
   }
  } catch (Exception e) {
   e.printStackTrace();
  }

 }

}

分享到:
评论
5 楼 xuliuliu 2012-08-15  
        
4 楼 xuliuliu 2012-08-15  
3 楼 xuliuliu 2012-08-15  
:ddddddddd
2 楼 xuliuliu 2012-08-15  
              :asaaa:
1 楼 xuliuliu 2012-08-15  
 

相关推荐

    Xml读取代码自动生成工具

    本文将深入探讨“Xml读取代码自动生成工具”,它旨在帮助开发者简化XML文件的处理过程,通过自动化生成相关的读取代码,提高开发效率。 在编程中,处理XML文件通常涉及到解析XML文档、查找特定节点、提取节点值等...

    c#操作XML 读取、生成,WEBSERVICE接口

    本教程将深入探讨如何在C#中操作XML,包括读取和生成XML文档,并利用Web Service接口进行数据传输。 1. **C#操作XML:读取** 在C#中,我们可以使用`System.Xml`命名空间中的类来处理XML文档。其中,`XmlDocument`...

    读取xml生成树,ajax读取xml动态生成树(1)

    2. **读取XML生成树** - DOM(Document Object Model):XML文档的抽象表示,将XML转换为一个可操作的对象模型。JavaScript中,我们可以使用`DOMParser`对象解析XML字符串,得到一个`Document`对象,然后遍历节点,...

    excel读取生成xml文件

    3. **设置XML映射属性**:调整映射属性以控制XML生成的方式。例如,可以设置是否包含列标题、数据验证规则等。此外,还可以设置命名空间,以便在生成的XML文件中保持与外部服务或系统的兼容性。 4. **保存为XML文件...

    读取Excel数据生成XML文件

    综上所述,实现“读取Excel数据生成XML文件”的过程涉及到对Excel数据的处理、XML语法的理解,以及利用编程语言如Python中的工具进行转换。同时,提供详细的使用说明和资源链接可以帮助用户更好地理解和应用这个过程...

    从数据库中读取数据自动生成XML

    从数据库中读取数据自动生成XML 在本篇文章中,我们将讨论如何从数据库中读取数据自动生成XML文件。XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据。它广泛应用于各种领域,包括网络开发、...

    FLASH动态读取XML (包含:ASP生成xml代码及flash源文件)

    这个压缩包“FLASH动态读取XML”提供了实现这一功能的相关资源,包括ASP生成XML的代码和Flash源文件。下面我们将详细探讨这些知识点。 1. **Flash动态读取XML**:Flash可以使用ActionScript编程语言来读取XML文件,...

    java读取xml文件生成文件

    Java语言在处理XML文件时,提供了丰富的API和库,使得我们可以轻松地读取、解析、修改和生成XML文档。在给定的场景中,我们主要关注如何使用Java来读取XML文件并根据需求生成新的文件。以下是关于这个主题的详细说明...

    backgroundwork使用,xml的生成与读取

    描述中提到了“xml的生成与读取”,XML是一种可扩展标记语言,用于存储和传输数据。在C#中,有多种方式处理XML: 1. **生成XML**:可以使用 `System.Xml` 命名空间下的 `XmlDocument` 类来创建和修改XML文档。首先...

    XLS生成XML XML生成器

    在IT行业中,XLS生成XML和XML生成器是两种常见的数据转换工具,它们主要用于处理电子表格数据和结构化数据之间的转换。XLS文件通常指的是Microsoft Excel格式的文件,这是一种广泛用于存储和处理表格数据的文件格式...

    c++生成与读取XML by rapidxml

    本文将详细介绍如何使用rapidxml在C++中生成和读取XML文件。 **1. rapidxml简介** rapidxml是C++编写的一个轻量级、快速的XML解析器,它不依赖于任何外部库,且内存管理高效,特别适合嵌入式系统或对性能有高要求的...

    WPF_c#Model生成/读取XML.zip

    本教程将详细讲解如何使用C#和WPF来生成和读取XML文件,以便于在应用程序中存储和检索数据。 首先,XML(Extensible Markup Language)是一种自描述、结构化的数据格式,广泛用于数据交换和持久化存储。在C#中,...

    java 读取xml文件生成树形图

    标题中的"java 读取xml文件生成树形图"指的是使用Java代码读取XML文件,并将文件内容构建为一棵树,其中每个XML元素都是树上的一个节点。接下来,我们将深入探讨如何实现这个过程。 1. DOM解析器:DOM是将整个XML...

    XML解析和生成工具

    XML生成是指将数据结构转换为XML文档的过程。这可以通过DOM模型或者流式API实现。`Markup.h`可能包含用于生成XML的类和方法,如: 1. 创建元素:提供创建新元素的方法,包括设置元素名称、属性等。 2. 添加子元素:...

    flash读取XML生成动态菜单,动态读取视频,动态生成图文混排,动态配置背景

    flash读取XML生成动态菜单,动态读取视频,动态生成图文混排,动态配置背景

    java 创建生成读取 xml

    用java创建生成xml文件,可以对其进行编写和读取xml文件内容

    XML解析与生成

    本文将深入探讨XML的解析与生成,同时参考博文《SaxXml》来提供更具体的实践指导。 XML的基本结构包括元素、属性、文本内容、注释等。元素是XML的核心,用尖括号包围,如`&lt;element&gt;`,可以包含子元素、属性和文本。...

    C# 读取文件名构造XML文件并生成Tree

    在这个项目中,我们聚焦于一个特定任务:从文件夹中读取文件名,利用这些文件名构造XML文件,并基于XML生成一个树形结构。当用户点击树的叶子节点时,相关文件的图片会得以显示。这个过程涉及到了多个关键知识点,...

    读取XML文件生成页面表格

    而将XML文件中的数据读取并生成页面表格,则是前端开发中常见的需求,尤其在展示结构化信息时非常有用。下面我们将详细探讨如何实现这个过程。 首先,我们需要理解XML的基本结构。XML文件由一系列元素组成,每个...

    RSS发布(生成XML)和读取URL

    3. **javaXML.rar**:这是一个压缩文件,可能包含了其他与XML处理相关的Java代码或资源,比如RSS生成的示例代码。 4. **feed_fetcher20080708035042.xml**:这可能是RSS的示例文件,用于展示RSS的结构或者作为测试...

Global site tag (gtag.js) - Google Analytics