需要导入Jdom的一个jar包;
1、Jdom创建XML
package com.shengsiyuan.jdom;
import java.io.FileWriter;
import org.jdom.Attribute;
import org.jdom.Comment;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
public class JDomTest1
{
public static void main(String[] args) throws Exception
{
//创建文档
Document document = new Document();
//创建文档根元素
Element root = new Element("root");
//向文档呢添加根元素
document.addContent(root);
//添加注释
Comment comment = new Comment("This is my comments");
//在根元素下添加注释
root.addContent(comment);
//创建一个元素
Element e = new Element("hello");
//给元素添加属性的第一种方式,它有返回值,返回一个Element对象
e.setAttribute("sohu", "www.sohu.com");
//给根元素添加属性
root.addContent(e);
Element e2 = new Element("world");
//创建元素属性的第二种方式
Attribute attr = new Attribute("test", "hehe");
//给元素添加属性
e2.setAttribute(attr);
//将元素添加到根元素下
e.addContent(e2);
//添加元素属性和文本内容,属于方法链的编程风格
e2.addContent(new Element("aaa").setAttribute("a", "b")
.setAttribute("x", "y").setAttribute("gg", "hh").setText("text content"));
//设置其格式,一般还有一个没有缩进与空格的格式getRawFormat,主要用于XML的网络传输,因为它没有空格,减少网络传输的数据量。
Format format = Format.getPrettyFormat();
//设置元素前面空格
format.setIndent(" ");
//设置编码方式
//format.setEncoding("gbk");
//将XML文档输出
XMLOutputter out = new XMLOutputter(format);
out.output(document, new FileWriter("jdom.xml"));
}
}
2、Jdom解析XML
package com.shengsiyuan.jdom;
import java.io.File;
import java.io.FileOutputStream;
import java.util.List;
import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
public class JDomTest2
{
public static void main(String[] args) throws Exception
{
//JDOM从XML中解析
SAXBuilder builder = new SAXBuilder();
//获得XML文档对象
Document doc = builder.build(new File("jdom.xml"));
//得到文档根元素
Element element = doc.getRootElement();
System.out.println(element.getName());
//得到根元素下的hello元素
Element hello = element.getChild("hello");
System.out.println(hello.getText());
//得到hello子元素下的属性
List list = hello.getAttributes();
//得到hello元素下属性的名字和值
for(int i = 0 ;i < list.size(); i++)
{
Attribute attr = (Attribute)list.get(i);
String attrName = attr.getName();
String attrValue = attr.getValue();
System.out.println(attrName + "=" + attrValue);
}
//删除hello下的world子元素
hello.removeChild("world");
//将文档保存到另一个文件
XMLOutputter out = new XMLOutputter(Format.getPrettyFormat().setIndent(" "));
out.output(doc, new FileOutputStream("jdom2.xml"));
}
}
3、综合实例
package cn.com.xmltest;
import java.io.File;
import java.io.FileNotFoundException;
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.Format;
import org.jdom.output.XMLOutputter;
public class XMLTest
{
public static void main(String[] args)
{
modifyXML();
}
public static void createXML()
{
Element root = new Element("学生信息");
Element stu1 = new Element("学生");
Element stu2 = new Element("学生");
Element name1 = new Element("姓名");
Element sex1 = new Element("性别");
Element age1 = new Element("年龄");
Element name2 = new Element("姓名");
Element sex2 = new Element("性别");
Element age2 = new Element("年龄");
name1.setText("小明");
sex1.setText("男");
age1.setText("19");
name2.setText("小花");
sex2.setText("女");
age2.setText("20");
root.addContent(stu1);
root.addContent(stu2);
stu1.addContent(name1);
stu1.addContent(sex1);
stu1.addContent(age1);
stu2.addContent(name2);
stu2.addContent(sex2);
stu2.addContent(age2);
Document doc = new Document(root);
Format f = Format.getPrettyFormat();
f.setEncoding("gb2312");
XMLOutputter out = new XMLOutputter(f);
try
{
out.output(doc, new FileOutputStream(new File("c:/myxml.xml")));
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void searchXML()
{
SAXBuilder build = new SAXBuilder();
try
{
Document doc = build.build("c:/myxml.xml");
Element e = doc.getRootElement();
List<Element> list = e.getChildren();
for (Element ele : list)
{
System.out.println(ele.getChild("姓名").getName() + ":"
+ ele.getChild("姓名").getText());
System.out.println(ele.getChild("性别").getName() + ":"
+ ele.getChild("性别").getText());
System.out.println(ele.getChild("年龄").getName() + ":"
+ ele.getChild("年龄").getText());
}
}
catch (JDOMException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void addElement()
{
SAXBuilder build=new SAXBuilder();
try
{
Document doc=build.build("c:/myxml.xml");
Element root=doc.getRootElement();
Element stu=root.getChild("学生");
Element cla=new Element("班级");
cla.addContent("2班");
stu.addContent(cla);
XMLOutputter out=new XMLOutputter();
out.output(doc,new FileOutputStream(new File("c:/myxml.xml")));
}
catch (JDOMException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
public static void modifyXML()
{
SAXBuilder build=new SAXBuilder();
Document doc;
try
{
doc = build.build("c:/myxml.xml");
Element root=doc.getRootElement();
Element stu=root.getChild("学生");
Element age=stu.getChild("年龄2");
age.setName("年龄");
age.setText("10");
List<Element> list=stu.getChildren();
for(Element e:list)
{
if(e.getName().equals(""));
//{
////Element height=new Element("身高");
////height.setText("175厘米");
////root.addContent(height);
// stu.removeChild(str);
//}
}
XMLOutputter out=new XMLOutputter();
out.output(doc,new FileOutputStream(new File("c:/myxml.xml")));
}
catch (JDOMException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
分享到:
相关推荐
这些类构成了JDOM的核心,它们帮助开发者构建和操作XML文档。 在解析XML文件时,JDOM提供了SAXBuilder和DOMBuilder两种方式。SAXBuilder基于事件驱动,适用于处理大型XML文件,因为它占用较少的内存。DOMBuilder则...
**JDOM创建和解析XML** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java中,JDOM(Java Document Object Model)是一个流行的库,用于创建和...
4. **Builder**:用于创建和解析XML文档的类,如`SAXBuilder`用于从XML源生成DOM结构,`DocumentBuilder`用于构建XML文档。 5. **BasicJDOMFactory**:提供默认的元素和属性创建方法。 **使用JDOM解析XML的步骤** ...
Java JDOM解析XML是Java开发中处理XML文档的一种方法,JDOM全称为Java Document Object Model,它是一个基于Java语言的API,用于创建、修改和读取XML文档。JDOM为XML处理提供了一种高效且方便的解决方案,尤其适用于...
JDOM是Java中一个专门用来解析XML的库,它提供了方便的API来读取、修改和创建XML文档。在这个例子中,我们将深入探讨如何使用JDOM解析XML文件,并进行遍历与构建。 首先,我们需要了解JDOM的基本概念。JDOM主要由三...
**Java与XML:JDOM解析XML的详细指南** 在Java编程中,XML(eXtensible Markup Language)是一种被广泛使用的数据交换格式,用于存储结构化数据。为了处理XML文档,开发者可以使用多种库,其中之一就是JDOM。JDOM是...
使用JDOM,我们可以通过API操作这些节点来实现对XML的解析和操作。 要读取XML文件,首先需要在项目中引入JDOM库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.jdom ...
JDOM(Java Document Object Model)是一种基于Java的XML解析API,它提供了一种简便的方式来解析和操作XML文档。与传统的DOM相比,JDOM更加注重性能和易用性,避免了DOM中的一些冗余设计。JDOM的主要优势在于它具有...
JDOM是Java中专门用来解析和操作XML的一个库,它提供了一种高效且方便的方式来处理XML文档。本实例将深入讲解如何使用JDOM进行XML解析。 首先,我们需要在项目中引入JDOM的类库。JDOM官方网站提供了不同版本的JDOM ...
**JDOM解析XML文件** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java中,JDOM(Java Document Object Model)是一个流行的选择来解析和操作...
Java中的JDOM库是用于解析XML文档的一种强大的工具。它提供了简单、高效的API来读取、修改和创建XML文件。本篇文章将深入探讨如何利用JDOM解析XML文件,以及在这个过程中涉及的关键知识点。 首先,我们需要了解XML...
使用JDOM解析XML文档通常包括以下几个步骤: 1. 创建`SAXBuilder`实例,这是JDOM提供的解析器,可以将XML输入源转换为`Document`对象。 2. 使用`SAXBuilder`的`build`方法读取XML文件,生成`Document`对象。 3. ...
总结来说,利用JDOM解析XML文件,我们可以轻松地将XML结构转换为Java对象,这对于数据的序列化和反序列化非常有用。通过JDOM,开发者可以快速地读取XML数据,根据类名创建对象,并设置相应的属性,实现数据的高效...
JDOM,全称Java Document Object Model,是专门为Java设计的一个解析XML的API,它提供了方便的构建和操作XML文档的方法。 JDOM的优势在于它完全基于Java,因此可以充分利用Java的强大功能,如异常处理、内存管理等...
它提供了一种简单、高效的方式来创建、修改和解析XML文档。下面我们将深入探讨如何利用JDOM生成XML以及解析XML。 一、JDOM生成XML 1. **导入JDOM库**: 首先,你需要在项目中引入JDOM库。如果你使用的是Maven,可以...
### jdom解析XML文件及将字符串解析为XML #### 一、JDOM简介与环境搭建 JDOM(Java Document Object Model)是一种用Java语言编写的轻量级API,用于处理XML文档。它允许开发者轻松地读取、创建、修改XML文档,并将...
例如,使用JDOM创建XML文档的代码可能如下: ```java SAXBuilder builder = new SAXBuilder(); Document document = builder.build(new File("example.xml")); Element root = document.getRootElement(); ``` 2. ...
JDOM是Java领域中专门处理XML的一个库,它提供了一种高效且方便的方式来创建、操作和读取XML文档。本文将详细介绍JDOM-1.0版本在解析XML方面的核心概念和技术。 ### JDOM简介 JDOM是由Jason Hunter和Brett ...
3. **解析XML文件**:使用`SAXBuilder`或者`JDOMBuilder`可以解析XML文件到一个`Document`对象。例如: ```java SAXBuilder builder = new SAXBuilder(); File xmlFile = new File("path_to_your_xml_file.xml");...
总结起来,JDOM为Java开发者提供了一种强大而灵活的方式来解析和操作XML文档。通过创建`Document`对象,我们可以访问XML的结构,包括元素、属性和文本内容。同时,利用XPath可以更精确地定位到XML文档的特定部分。在...