`
jackson_jar
  • 浏览: 36856 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

xml的增删改查之SAXBuilder

    博客分类:
  • java
阅读更多

package com.tjsoft.demo;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;

public class XmlTest {
 
 //查询所有的数据
 public static void list() throws JDOMException, IOException {
  SAXBuilder builder = new SAXBuilder();
  InputStream file = new FileInputStream("src/po.xml");
  //System.out.println(file.available());
  //获得文档对象
  Document document = builder.build(file);
  //获得根节点
  Element root = document.getRootElement();
  List list = root.getChildren();
  System.out.println("root : "+root);
  System.out.println(root.getName());
  Iterator it = list.iterator();
  //for(Element e:list) {
//  for(int i = 0; i < list.size(); i++){
  while(it.hasNext()){
   Element e = (Element) it.next();
   System.out.println("ID: "+e.getAttributeValue("id"));
   System.out.println(e.getChildText("username"));
   System.out.println(e.getChildText("password"));
   //System.out.println(list.iterator().getClass().toString());
   
  }
 }
 
 
 //添加数据
 public static void add() throws JDOMException, FileNotFoundException, IOException {
  SAXBuilder builder = new SAXBuilder();
  Document document = builder.build("src/po.xml");
  Element root = document.getRootElement();
  
  Element element = new Element("person");
  element.addAttribute("id","3");
  Element e1 = new Element("username");
  e1.setText("hello");
  Element e2 = new Element("password");
  e2.setText("world");
  
  element.addContent(e1);
  element.addContent(e2);
  root.addContent(element);
  document.setRootElement(root);
  
  XMLOutputter output = new XMLOutputter();
  output.output(document,new FileOutputStream("src/po.xml"));
  
  
 }
 //修改数据
 public static void edit(int id) throws JDOMException, FileNotFoundException, IOException {
  SAXBuilder builder = new SAXBuilder();
  Document document = builder.build("src/po.xml");
  Element root = document.getRootElement();
  

  List list = root.getChildren();
  Iterator it = list.iterator();  
  for(int i = 0; i < list.size(); i++) {
   Element e = (Element) it.next();
   System.out.println("=============="+e.getAttributeValue("id"));
   if(Integer.parseInt(e.getAttributeValue("id")) == id) {
    e.getChild("username").setText("wuchao");
    e.getChild("password").setText("jiayou");
    
   }
  }
  XMLOutputter output = new XMLOutputter();
  output.output(document,new FileOutputStream("src/po.xml"));
 }
 
 //删除
 public static void del(int id) throws JDOMException, FileNotFoundException, IOException {
  SAXBuilder builder = new SAXBuilder();
  Document document = builder.build("src/po.xml");
  Element root = document.getRootElement();
  
  List list = root.getChildren();
  Iterator it = list.iterator();
  
  for(int i = 0; i < list.size(); i++) {
   Element e = (Element) it.next();
   if(Integer.parseInt(e.getAttributeValue("id")) == id) {
    root.removeContent(e);
    break;
   }
  }
    //文件处理
    XMLOutputter out = new XMLOutputter();
    out.output(document, new FileOutputStream("src/po.xml"));
 }
 public static void main(String[] args) {
  
//   XmlTest.add();
//   XmlTest.edit(1);
   try {
    XmlTest.list();
   } catch (JDOMException e1) {
    // TODO 自动生成 catch 块
    e1.printStackTrace();
   } catch (IOException e1) {
    // TODO 自动生成 catch 块
    e1.printStackTrace();
   }
   try {
    try {
     XmlTest.del(1);
    } catch (FileNotFoundException e) {
     // TODO 自动生成 catch 块
     e.printStackTrace();
    } catch (IOException e) {
     // TODO 自动生成 catch 块
     e.printStackTrace();
    }
   } catch (JDOMException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
   }
  
 }
}

4
1
分享到:
评论
2 楼 jackson_jar 2008-09-19  
是啊。这是我的入门作品。。。其实也是参考了网上前辈的资料。。
写了这么一个东西。。希望对我们学习道路会有所帮助。。谢谢楼上的意义!
1 楼 grandboy 2008-08-31  
对xml操作,觉得dom4j还是不错。

相关推荐

    java xml增删改查多种方法

    本篇文章将详细探讨Java对XML文档进行增删改查的多种方法。 1. **解析XML文档** 在Java中,解析XML主要有DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)三种方式。 ...

    jdom 操作XML实现增删改查

    XML(eXtensible Markup...以上就是利用JDOM库在Java中实现XML增删改查的基本步骤。在实际应用中,可能还需要处理更复杂的XML结构和错误处理。JDOM库提供了丰富的API,可以帮助开发者高效地处理XML文档,满足各种需求。

    完整的jdom增删改查

    在"完整的jdom增删改查"这个主题中,我们将深入探讨如何使用JDOM来执行XML文档的基本操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete),这通常被称为CRUD操作。 1. 创建(Create): 创建...

    jdom增,删,改,解析

    在本文中,我们将深入探讨JDOM的核心概念、如何进行XML的增删改查操作以及相关的最佳实践。 ### 一、JDOM的基本概念 1. **Document**: XML文档的根节点,代表整个XML结构。 2. **Element**: XML文档中的元素,可以...

    4种解析XML方法实例

    例如,你可以通过DOM解析器找到特定元素、属性或文本,并进行增删改查操作。在Java中,可以使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`来实现DOM解析。 ```java import javax.xml....

    jdom操作xml的文档

    在这个示例中,我们首先使用 `SAXBuilder` 从 XML 文件构建了一个 `Document` 对象,然后通过获取根元素 `书库` 并遍历其子元素 `书`,从中提取所需的数据。接着,我们将数据填充到 `XmlBean` 实例中并打印出来。...

    JDOM实现从数据库读取字段生成XML树

    这使得我们可以方便地通过Java代码对XML文档进行增删改查。JDOM提供了两种主要的构建方式:SAXBuilder和DOMBuilder。SAXBuilder适用于大型XML文件,因为它基于事件驱动,占用内存较少;DOMBuilder则适用于小到中型的...

    jdom.rar内含多个jdom包

    2. **操作XML**:对`Document`对象进行增删改查,比如修改`Element`的属性,添加子元素等。 3. **输出XML**:使用`XMLOutputter`类将`Document`对象转换回XML字符串或写入文件。 JDOM还支持XPath表达式,允许开发者...

    java开发常用jar包之jdom.rar

    4. **操作XML**:通过`Document`和`Element`对象的方法进行增删改查操作。 ```java Element childElement = document.createElement("child"); rootElement.appendChild(childElement); ``` 5. **保存XML**:...

    jdom(1.0和1.1完整包)

    2. **操作XML**: 通过`Element`、`Attribute`等类对`Document`进行增删改查操作。 3. **序列化XML**: 将修改后的`Document`对象转换回XML字符串,可以使用`XMLOutputter`完成此任务。 在压缩包中,`jdom-1.0`和`...

    jdom+dom4j解析xml.docx

    - 增删子节点: - 删除指定位置的子节点: ```java allChildren.remove(3); ``` - 删除所有指定名称的子节点: ```java allChildren.removeAll(rootElement.getChildren("jack")); ``` - 添加子节点: - ...

    JDOM帮助文档以及使用教程

    3. **操作XML**:对`Document`对象进行增删改查操作,如添加元素、修改属性值、删除元素等。 4. **保存XML文档**:最后,通过`Transformer`将`Document`对象转换回XML字符串或写入文件。 **五、JDOM API简要介绍** ...

    jdom2.0.5.0.zip

    通过这些对象,开发者可以直接对XML进行增删查改操作,如添加新的元素、修改属性值或删除特定节点。例如,你可以使用`org.jdom2.Element`类创建一个新的元素,然后使用`addContent()`方法将其添加到父元素中。 JDOM...

Global site tag (gtag.js) - Google Analytics