XML文件:
<?xml version="1.0" encoding="UTF-8"?><books><book><name>哈里波特</name><price>10</price><memo>这是一本很好看的书。</memo></book></books>
Java代码:
import java.io.*;
import org.jdom.Document;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
/**
* JDOM 方式操作XML
*
* @author Watson Xu
* @date 2011-5-3 下午02:20:49
*/
public class OperationXMLByJdom {
/**
* DOCUMENT格式化输出保存为XML
*
* @param doc JDOM的Document
* @param filePath 输出文件路径
* @throws Exception
*/
public static void doc2XML(Document doc, String filePath) throws Exception{
Format format = Format.getCompactFormat();
format.setEncoding("UTF-8"); //设置XML文件的字符为UTF-8
format.setIndent(" ");//设置缩进
XMLOutputter outputter = new XMLOutputter(format);//定义输出 ,在元素后换行,每一层元素缩排四格
FileWriter writer = new FileWriter(filePath);//输出流
outputter.output(doc, writer);
writer.close();
}
/**
* 字符串转换为DOCUMENT
*
* @param xmlStr 字符串
* @return doc JDOM的Document
* @throws Exception
*/
public static Document string2Doc(String xmlStr) throws Exception {
java.io.Reader in = new StringReader(xmlStr);
Document doc = (new SAXBuilder()).build(in);
return doc;
}
/**
* Document转换为字符串
*
* @param xmlFilePath XML文件路径
* @return xmlStr 字符串
* @throws Exception
*/
public static String doc2String(Document doc) throws Exception {
Format format = Format.getPrettyFormat();
format.setEncoding("UTF-8");// 设置xml文件的字符为UTF-8,解决中文问题
XMLOutputter xmlout = new XMLOutputter(format);
ByteArrayOutputStream bo = new ByteArrayOutputStream();
xmlout.output(doc, bo);
return bo.toString();
}
/**
* XML转换为Document
*
* @param xmlFilePath XML文件路径
* @return doc Document对象
* @throws Exception
*/
public static Document xml2Doc(String xmlFilePath) throws Exception {
File file = new File(xmlFilePath);
return (new SAXBuilder()).build(file);
}
public static void main(String[] args) {
try{
Document doc = xml2Doc("test.xml");
System.out.println(doc);
System.out.println(doc2String(doc));
doc = string2Doc(doc2String(doc));
doc2XML(doc, "1.xml");
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<name>哈里波特</name>
<price>10</price>
<memo>这是一本很好看的书。</memo>
</book>
</books>
分享到:
相关推荐
在Java编程中,JDOM(Java Document Object Model)是处理XML的一种库,它提供了方便的方式来创建、修改和读取XML文档。本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过...
JDOM是Java中一个用于处理XML文档的库,它提供了一种高效且方便的方式来创建、读取、修改XML文件。本篇文章将深入探讨如何使用JDOM来读取XML文件。 首先,我们需要了解JDOM的基本概念。JDOM通过构建一棵DOM...
JDOM是Java Document Object Model的缩写,它是一个为Java设计的XML处理库,允许开发者以简单、高效的方式处理XML文档。本教程将深入探讨如何使用JDOM读取XML文件,并阐述其在Spring框架中的应用。 首先,我们了解...
### JDOM 读取与修改 XML 文件 #### JDOM 简介 JDOM(Java Document Object Model)是一个用于处理 XML 数据的 Java 库。它提供了面向对象的 API 来解析、创建和修改 XML 文档。JDOM 的设计非常直观且易于使用,...
在解析XML时,JDOM会将整个XML文档转换为一个Document对象,这个对象包含了一个根元素和其他子元素,这些元素又可以包含更多的元素和属性。 解析XML文件的基本步骤如下: 1. 引入JDOM库:确保项目中已经添加了JDOM...
6. **输出XML**:使用`XMLOutputter`将`Document`对象转换回XML字符串或写入文件。 ```java import org.jdom2.output.XMLOutputter; XMLOutputter xmlOutput = new XMLOutputter(); String xmlString = xmlOutput....
5. 保存修改:如果需要保存对XML文件的修改,可以使用`XMLOutputter`类将`Document`对象转换回XML字符串,然后写回文件: ```java XMLOutputter outputter = new XMLOutputter(); String xmlString = outputter....
### jdom解析XML文件及将字符串解析为XML #### 一、JDOM简介与环境搭建 JDOM(Java Document Object Model)是一种用Java语言编写的轻量级API,用于处理XML文档。它允许开发者轻松地读取、创建、修改XML文档,并将...
package com.common.xml;... Document document=sAXBuilder.build(xmlFile); element=document.getRootElement().getChild(firstChild); }catch(Exception e){ e.printStackTrace(); } return element; } }
- **优化策略**:如果确实需要处理大型XML文件,可以使用JDOM的SAXBuilder,它允许以SAX方式读取XML,但仍然使用JDOM API进行操作。 6. **示例代码** ```java import org.jdom2.Document; import org.jdom2....
在Java中,JDOM提供了两种主要的方式来解析XML文件:SAX(Simple API for XML)和DOM(Document Object Model)。SAX是事件驱动的,逐行解析文件,适用于大文件,内存消耗小;而DOM则将整个XML文件加载到内存中,...
本实例将探讨如何使用JDOM进行XML文件的解析。 首先,我们来看JDOM的基本结构。JDOM的核心类包括`Element`,代表XML文档中的元素;`Attribute`,表示元素的属性;`Document`,整个XML文档的根节点;以及`Builder`,...
总结起来,JDOM为Java开发者提供了一种强大而灵活的方式来解析和操作XML文档。通过创建`Document`对象,我们可以访问XML的结构,包括元素、属性和文本内容。同时,利用XPath可以更精确地定位到XML文档的特定部分。在...
- JDOM中的Document不同于W3C DOM的Document,两者之间可以通过特定适配器进行转换。 通过以上介绍,我们可以看出JDOM是一个强大的XML处理库,为Java开发者提供了简洁且高效的API来处理XML文档。无论是在创建新的...
3. **JDOM解析**:JDOM结合了DOM和SAX的优点,它允许开发者以DOM的方式操作XML,同时通过优化内存使用,降低了DOM的资源消耗。JDOM提供了直观的API,使得XML处理更符合Java程序员的习惯。 **JDOM的主要类和方法** 1...
JDOM(Java Document Object Model)是一个专门为Java设计的XML API,它提供了对XML文档的全面控制,包括创建、修改和读取XML文档。通过JDOM,我们可以方便地处理XML字符串,确保其符合W3C的XML规范。 在开始之前,...
在Java编程中,JDOM(Java Document Object Model)是处理XML的一种流行库,它提供了方便的方式来创建、修改和解析XML文档。本篇文章将深入探讨JDOM库如何实现XML文件的读取操作。 首先,为了使用JDOM,我们需要在...
JDOM(Java Document Object Model)是Java的一个API,专门用来处理XML文档,提供了一种方便的方式来创建、修改和操作XML文档。本篇文章将详细探讨如何使用JDOM读取具有属性的XML文件,例如: ```xml ``` 首先,...
在IT行业中,XML(eXtensible Markup Language)是一种被广泛...无论是解析现有的XML文件还是构建新的XML文档,JDOM都能提供必要的支持。通过深入学习和实践,开发者可以充分利用JDOM的功能,提升XML处理的效率和质量。
解析XML文档通常涉及读取文件并将其转换为JDOM对象。以下是一个基本示例: ```java import org.jdom2.Document; import org.jdom2.input.SAXBuilder; public class XmlDocumentParser { public Document parseXml...