package xmldom;
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;
/**
* xml的增删改查之SAXBuilder
* @author Administrator
*
*/
public class XmlTest {
//查询所有的数据
public static void list() throws JDOMException, IOException {
SAXBuilder builder = new SAXBuilder();
InputStream file = new FileInputStream("./src/xmldom/message.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/xmldom/message.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("username").setAttribute("ip2", "66666666666");
e.getChild("password").setText("jiayou");
}
}
XMLOutputter output = new XMLOutputter();
output.output(document,new FileOutputStream("./src/xmldom/message.xml"));
}
//删除
public static void del(int id) throws JDOMException, FileNotFoundException, IOException {
SAXBuilder builder = new SAXBuilder();
Document document = builder.build("./src/xmldom/message.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/xmldom/message.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.edit(1);
} catch (FileNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
} catch (JDOMException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
/*
<?xml version="1.0" encoding="UTF-8"?>
<root>
<person id="1">
<username ip="1234567" ip2="66666666666"/>
<password>jiayou</password>
</person>
<person id="2">
<username>111111111</username>
<password>password</password>
</person>
</root>
分享到:
相关推荐
"SaxBuilder"是一个用于处理XML数据的工具类,它主要用于SOAP(Simple Object Access Protocol)报文的解析。SOAP是一种基于XML的协议,广泛应用于分布式系统中的Web服务接口,允许不同平台的应用程序之间进行通信。...
**JDOM SAXBuilder详解** JDOM,全称Java Document Object Model,是一个用于处理XML文档的Java库。它提供了一个纯Java的解决方案来创建、修改和读取XML文档,旨在提高性能和易用性。SAXBuilder是JDOM库中的一个...
在本例中,问题聚焦于 "org.jdom.input.SAXBuilder" 类,这涉及到Java的JDOM库。JDOM是一个用于处理XML文档的Java API,它提供了创建、修改和读取XML文档的功能。SAXBuilder是JDOM中的一个关键类,用于将XML数据解析...
**SAXBuilder** 是 JDOM 库中的一个关键类,用于构建基于SAX(Simple API for XML)的XML文档解析。在Java编程中,处理XML数据时,SAXBuilder提供了高效且内存友好的方式,因为它不会一次性加载整个XML文档到内存,...
SAXBuilder是JDOM库中的一个关键类,用于解析XML文档。JDOM是一个Java API,设计用来处理XML数据,提供了一种与DOM(Document Object Model)类似的接口,但它的内存占用通常比DOM小,适用于处理大型XML文件。下面将...
SAXBuilder saxBuilder = new SAXBuilder(); ``` 3. **加载XML文件**:使用`SAXBuilder`读取XML文件并构建`Document`对象。 ```java import java.io.File; File inputFile = new File("sample.xml"); Document ...
SAXBuilder sAXBuilder=new SAXBuilder(false); Document document=sAXBuilder.build(xmlFile); element=document.getRootElement().getChild(firstChild); }catch(Exception e){ e.printStackTrace(); } ...
SAXBuilder sb = new SAXBuilder(); ``` 3. **使用SAXBuilder构建Document对象**: ```java Document doc = sb.build("sample.xml"); ``` 这里 `"sample.xml"` 是待读取的XML文件名或路径。 4. **获取根元素...
2. 创建SAXBuilder实例:`SAXBuilder saxBuilder = new SAXBuilder();` 3. 加载XML文件:`File xmlFile = new File("path_to_xml_file.xml");` 4. 解析XML文件:`Document document = saxBuilder.build(xmlFile);` 5...
SAXBuilder sb = new SAXBuilder(false); Document doc = null; try { doc = sb.build("sample.xml"); } catch (JDOMException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); ...
本文将深入探讨如何使用Java的SAXBuilder类来解析XML文档中的单个标签及其属性,基于给定的代码示例。 ### Java解析单标签中的属性 #### 1. **导入必要的包** 在解析XML之前,首先需要导入处理XML相关的包。给定...
1. 创建SAXBuilder实例:`SAXBuilder saxBuilder = new SAXBuilder();` 2. 使用SAXBuilder解析XML文件并构建Document对象:`Document document = saxBuilder.build(new File("path_to_xml_file"));` 3. 通过Document...
SAXBuilder saxBuilder = new SAXBuilder(); ``` 2. **读取XML文件**:然后,使用SAXBuilder的`build`方法读取XML文件,这将返回一个Document对象,表示整个XML文档的根节点。 ```java import java.io.File; File ...
SAXBuilder saxBuilder = new SAXBuilder(); ``` 2. **读取XML文件**:使用`SAXBuilder`的`build`方法加载XML文件,并返回一个`Document`对象。 ```java File inputFile = new File("path_to_your_xml_file....
SAXBuilder saxBuilder = new SAXBuilder(); Document document = saxBuilder.build("path_to_xml_file.xml"); // 现在你可以对document进行操作了 } catch (Exception e) { e.printStackTrace(); } } } ``` ...
SAXBuilder saxBuilder = new SAXBuilder(); ``` 2. **解析XML**:使用SAXBuilder的`build()`方法解析XML文件,返回一个Document对象。 ```java File xmlFile = new File("path/to/your/xml/file.xml"); Document ...
SAXBuilder saxBuilder = new SAXBuilder(); Document document = saxBuilder.build("example.xml"); ``` 2. **DOMBuilder**:如果XML文件较小,可以选择DOMBuilder一次性加载整个文档到内存,提供更简单的API。 `...
JAVA操作XML\XML\用JDOM操作XML文件--JSP中文网.mht
2. 创建SAXBuilder对象:`SAXBuilder saxBuilder = new SAXBuilder();` 3. 读取XML文件并构建DOM树:`File xmlFile = new File("path_to_xml_file"); Document document = saxBuilder.build(xmlFile);` 4. 获取根...
SAXBuilder builder = new SAXBuilder(); // 解析XML文件 Document doc = builder.build(input); Element root = doc.getRootElement(); // 关闭输入流 input.close(); // 输出根元素 System.out....