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();
}
}
}
分享到:
相关推荐
本篇文章将详细探讨Java对XML文档进行增删改查的多种方法。 1. **解析XML文档** 在Java中,解析XML主要有DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)三种方式。 ...
XML(eXtensible Markup...以上就是利用JDOM库在Java中实现XML增删改查的基本步骤。在实际应用中,可能还需要处理更复杂的XML结构和错误处理。JDOM库提供了丰富的API,可以帮助开发者高效地处理XML文档,满足各种需求。
在"完整的jdom增删改查"这个主题中,我们将深入探讨如何使用JDOM来执行XML文档的基本操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete),这通常被称为CRUD操作。 1. 创建(Create): 创建...
在本文中,我们将深入探讨JDOM的核心概念、如何进行XML的增删改查操作以及相关的最佳实践。 ### 一、JDOM的基本概念 1. **Document**: XML文档的根节点,代表整个XML结构。 2. **Element**: XML文档中的元素,可以...
例如,你可以通过DOM解析器找到特定元素、属性或文本,并进行增删改查操作。在Java中,可以使用`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`来实现DOM解析。 ```java import javax.xml....
在这个示例中,我们首先使用 `SAXBuilder` 从 XML 文件构建了一个 `Document` 对象,然后通过获取根元素 `书库` 并遍历其子元素 `书`,从中提取所需的数据。接着,我们将数据填充到 `XmlBean` 实例中并打印出来。...
这使得我们可以方便地通过Java代码对XML文档进行增删改查。JDOM提供了两种主要的构建方式:SAXBuilder和DOMBuilder。SAXBuilder适用于大型XML文件,因为它基于事件驱动,占用内存较少;DOMBuilder则适用于小到中型的...
2. **操作XML**:对`Document`对象进行增删改查,比如修改`Element`的属性,添加子元素等。 3. **输出XML**:使用`XMLOutputter`类将`Document`对象转换回XML字符串或写入文件。 JDOM还支持XPath表达式,允许开发者...
4. **操作XML**:通过`Document`和`Element`对象的方法进行增删改查操作。 ```java Element childElement = document.createElement("child"); rootElement.appendChild(childElement); ``` 5. **保存XML**:...
2. **操作XML**: 通过`Element`、`Attribute`等类对`Document`进行增删改查操作。 3. **序列化XML**: 将修改后的`Document`对象转换回XML字符串,可以使用`XMLOutputter`完成此任务。 在压缩包中,`jdom-1.0`和`...
- 增删子节点: - 删除指定位置的子节点: ```java allChildren.remove(3); ``` - 删除所有指定名称的子节点: ```java allChildren.removeAll(rootElement.getChildren("jack")); ``` - 添加子节点: - ...
3. **操作XML**:对`Document`对象进行增删改查操作,如添加元素、修改属性值、删除元素等。 4. **保存XML文档**:最后,通过`Transformer`将`Document`对象转换回XML字符串或写入文件。 **五、JDOM API简要介绍** ...
通过这些对象,开发者可以直接对XML进行增删查改操作,如添加新的元素、修改属性值或删除特定节点。例如,你可以使用`org.jdom2.Element`类创建一个新的元素,然后使用`addContent()`方法将其添加到父元素中。 JDOM...