事先需要从这里下载:http://www.jdom.org/dist/binary/ jdom.jar
JdomRWXML.java 源码:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
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 JdomRWXML {
public void BuildXMLDoc() throws IOException, JDOMException {
// 创建根节点 list;
Element root = new Element("list");
// 将根节点添加到文档中;
Document Doc = new Document(root);
// 此处 for 循环可替换成 遍历 数据库表的结果集操作;
for (int i = 0; i < 5; i++) {
// 创建新节点 company;
Element elements = new Element("company");
// 给 company 节点添加属性 id;
elements.setAttribute("id", "" + i);
// 给 company 节点添加子节点并赋值
elements
.addContent(new Element("company_name").setText("name" + i));
elements.addContent(new Element("company_email").setText("name" + i
+ "@163.com"));
// 给父节点list添加company子节点;
root.addContent(elements);
}
XMLOutputter XMLOut = new XMLOutputter();
// 输出company_list.xml文件;
XMLOut.output(Doc, new FileOutputStream("company_list.xml"));
}
public void ReadXMLDoc() throws IOException, JDOMException {
SAXBuilder sb = new SAXBuilder();// 建立构造器
Document doc = sb.build(new FileInputStream("company_list.xml"));// 读入指定文件
Element root = doc.getRootElement();// 获得根节点
List<?> list = root.getChildren();// 将根节点下的所有子节点放入List中
for (int i = 0; i < list.size(); i++) {
System.out.println("---------------------------");
Element item = (Element) list.get(i);// 取得节点实例
String id = item.getAttribute("id").getValue();// 取得属性值
System.out.println("id-->" + id);
Element sub1 = item.getChild("company_name");// 取得当前节点的字节点
String company_name = sub1.getText();// 取得当前节点的值
System.out.println("company_name-->" + company_name);
Element sub2 = item.getChild("company_email");
String company_email = sub2.getText();
System.out.println("company_email-->" + company_email);
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
JdomRWXML jdomRWXML = new JdomRWXML();
System.out.println("--------BuildXMLDoc----------");
jdomRWXML.BuildXMLDoc();
System.out.println("--------ReadXMLDoc----------");
jdomRWXML.ReadXMLDoc();
} catch (Exception e) {
e.printStackTrace();
}
}
}
使用jdom读写xml文档的实例
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
public class XMLFile
{
String id = "";
String indent = ""; // 缩进符号
SAXBuilder sb = new SAXBuilder();//建立构造器
boolean newLines = true; // 是否产生新行
XMLOutputter outp = new XMLOutputter ();
public static void main(String[] args)
{
}
public void removeContent(String fileName,int pos) //删除指定位置的 节点 序号从0开始
{
try
{
Document doc = sb.build(new FileInputStream(fileName));//读入指定文件
Element MyElement = doc.getRootElement(); //获得根节点
List<?> listTwo = MyElement.getChildren();//得到list,准备遍历所有节点
listTwo.remove(pos); //删除
outp.output(doc,new FileOutputStream(fileName)); // 输出到2.XML文件中
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void modifyContent(String fileName,int pos,String name,String content)// 修改XML内容
{
try
{
Document doc = sb.build(new FileInputStream(fileName));//读入指定文件
Element root = doc.getRootElement();//获得根节点
List<?> list = root.getChildren();//将根节点下的所有子节点放入List中
Element item = (Element)list.get(pos); // 取得根节点下第一个子节点
item.getChild(name).setText(content);
outp.output(doc,new FileOutputStream(fileName)); // 输出到2.XML文件中
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void listContent(String fileName) //读出,并列出XML内容
{
try
{
Document doc=sb.build(new FileInputStream(fileName));//读入指定文件
Element root=doc.getRootElement();//获得根节点
List<?> list=root.getChildren();//将根节点下的所有子节点放入List中
for(int i=0;i<list.size();i++)
{
Element item = (Element)list.get(i);//取得节点实例
String name = item.getAttribute("id").getValue();//取得属性值
System.out.println("id: "+name);
Element sub = item.getChild("title");//取得当前节点的字节点
String text = sub.getText();//取得当前节点的值
System.out.println("Title: "+text);
Element sub2 = item.getChild("content");
String text2 = sub2.getText();
System.out.println("Content: "+text2);
Element sub3 = item.getChild("time");
String text3 = sub3.getText();
System.out.println("Time: "+text3);
id = name;
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void addContent(String fileName,String title,String content,String time) //向XML文件添加内容.
{
try
{
Document doc=sb.build(new FileInputStream(fileName));//读入指定文件
Element root=doc.getRootElement();//获得根节点
List<?> list=root.getChildren();//将根节点下的所有子节点放入List中
Element article = new Element("message");
article.setAttribute("id", (list.size()+2)+"");
article.addContent(new Element("title").setText(title));
article.addContent(new Element("content").setText(content));
article.addContent(new Element("time").setText(time));
doc.getRootElement().addContent(article);
outp.output(doc, new FileOutputStream(fileName)); // 输出到2.XML文件中
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
分享到:
相关推荐
本文详细介绍了如何使用 JDOM 库创建 XML 文档,以及如何进行基本的 XML 文件解析。通过这些基础操作,您可以轻松地使用 Java 来管理和操作 XML 数据。JDOM 的简洁性和易用性使其成为处理 XML 数据的理想选择之一。
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在数据交换、配置文件、文档存储等领域。...在实际开发中,结合这些工具,我们可以轻松地实现对XML数据的读取、修改和生成。
总之,JDOM是一个强大的XML处理库,它简化了XML文档的读写和操作。理解其基本用法和API,能够帮助开发者高效地处理XML任务。在实际项目中,根据需求选择合适的解析方式,并注意资源管理,可以充分发挥JDOM的优势。
7. **修改XML**: JDOM支持对XML进行修改,包括添加、删除和更新元素、属性等。修改后,需要使用`XMLOutputter`来生成新的XML字符串或写入到文件。 ```java XMLOutputter xmlOutput = new XMLOutputter(); xml...
### JDOM 读取与修改 XML 文件 #### JDOM 简介 JDOM(Java Document Object Model)是一个用于处理 XML 数据的 Java 库。它提供了面向对象的 API 来解析、创建和修改 XML 文档。JDOM 的设计非常直观且易于使用,...
### JDOM解析XML文档 #### 一、JDOM概述与特点 JDOM(Java Document Object Model)是一款专为Java优化的开源XML数据处理库。它虽然与W3C的DOM标准相似,但作为DOM的一种替代方案,JDOM并不是基于DOM构建的,也...
JDOM(Java Document Object Model)是Java中处理XML文档的一个库,它提供了一种简单、高效的API来读取、创建和修改XML文档。本篇将详细介绍如何使用JDOM解析XML文件,并将其内容存入HashMap中。 首先,我们需要...
下面是一个简单的 JDOM 使用示例,演示如何读写 XML 文件。在这个例子中,我们有一个名为 `MyXml.xml` 的 XML 文件,包含两个书籍条目,每个条目有书名、作者、出版社、价格和出版日期等信息。为了操作这个 XML 文件...
通过这个示例,我们可以看到 JDOM 提供了简洁的 API 来进行 XML 的读写操作,使得开发者无需深入了解 XML 解析底层机制,就能高效地处理 XML 文档。对于初学者来说,这是一个很好的起点,可以快速上手 XML 的处理。
**标题:** 使用JDOM解析XML ...结合JSP,我们可以构建动态的、与用户交互的Web应用程序,实现对XML数据的读取、展示和更新。通过实践和理解这个例子,你将掌握XML解析的核心技能,为后续的开发工作打下坚实的基础。
本示例将详细介绍如何使用jxl.jar库来读写Excel文件,以及如何使用jdom.jar库来读写XML文件。 首先,让我们关注`jxl.jar`库,它是一个广泛使用的Java库,允许开发者读取、写入和修改Excel文件。以下是如何使用jxl....
然而,相比于DOM4J和StaX等其他处理库,JDOM在处理大型XML文件时可能较慢,因为它需要加载整个文档到内存。因此,对于大文件,考虑使用基于事件的解析器如SAX或者StaX。 总结,JDOM是Java中处理XML的一种重要工具,...
这种方式方便了对XML文档的随机访问,但可能会消耗大量内存,尤其对于大型文档。 2. **SAX解析**:SAX(Simple API for XML)采用事件驱动模型,不将整个文档加载到内存,而是逐行解析,触发相应的事件处理器。这种...
以下是一个简单的例子,展示了如何使用JDOM生成一个包含中文字符的XML文档: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.output.Format; import org.jdom2.output....
总结来说,JDOM作为XML解析的一种技术,因其简洁的API、良好的性能和对Java环境的优化,成为Java开发人员处理XML文档的得力工具。无论是在创建XML文档,还是在解析和查询XML内容时,JDOM都能提供高效且易用的解决...
JDOM通过DOM(Document Object Model)模型提供对XML的访问。DOM是一种树型结构,其中XML文档的每个部分都有一个对应的对象,如Element(元素)、Attribute(属性)、Text(文本)等。通过这些对象,我们可以方便地...
总结,JDOM作为Java处理XML的工具,提供了一种直观且高效的API,使开发人员能够轻松地对XML文档进行创建、解析和修改。实例71详细展示了如何使用JDOM进行XML操作,对于理解和掌握XML处理技术具有很高的参考价值。...
完成对XML文档的修改后,可以使用`TransformerFactory`和`Transformer`将`Document`对象写出为XML文件。 ```java TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer ...
在这个例子中,我们展示了如何使用JDOM解析XML文件,获取元素和属性,以及如何构建新的XML文档并将其写入文件。JDOM提供了一种简洁的API,使得处理XML变得相对简单。记住,JDOM支持命名空间、XPath查询和其他高级...
1. **节点操作**:JDOM支持对XML文档的各种节点进行操作,如元素(Element)、属性(Attribute)、文本(Text)、注释(Comment)等。你可以通过`addContent()`方法添加子元素,通过`setAttribute()`设置属性。 2. ...