`
kingxss
  • 浏览: 973889 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Jdom方式进行的XML文件、Document、String之间的相互转换

    博客分类:
  • XML
XML 
阅读更多

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>
1
10
分享到:
评论

相关推荐

    使用JDOM解析XML文件

    在Java编程中,JDOM(Java Document Object Model)是处理XML的一种库,它提供了方便的方式来创建、修改和读取XML文档。本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过...

    jdom 读取XML 文件

    JDOM是Java中一个用于处理XML文档的库,它提供了一种高效且方便的方式来创建、读取、修改XML文件。本篇文章将深入探讨如何使用JDOM来读取XML文件。 首先,我们需要了解JDOM的基本概念。JDOM通过构建一棵DOM...

    jdom学习读取xml文件.files

    JDOM是Java Document Object Model的缩写,它是一个为Java设计的XML处理库,允许开发者以简单、高效的方式处理XML文档。本教程将深入探讨如何使用JDOM读取XML文件,并阐述其在Spring框架中的应用。 首先,我们了解...

    jdom 读取修改xml文件

    ### JDOM 读取与修改 XML 文件 #### JDOM 简介 JDOM(Java Document Object Model)是一个用于处理 XML 数据的 Java 库。它提供了面向对象的 API 来解析、创建和修改 XML 文档。JDOM 的设计非常直观且易于使用,...

    用jdom解析xml文件

    在解析XML时,JDOM会将整个XML文档转换为一个Document对象,这个对象包含了一个根元素和其他子元素,这些元素又可以包含更多的元素和属性。 解析XML文件的基本步骤如下: 1. 引入JDOM库:确保项目中已经添加了JDOM...

    jdom解析xml文件

    6. **输出XML**:使用`XMLOutputter`将`Document`对象转换回XML字符串或写入文件。 ```java import org.jdom2.output.XMLOutputter; XMLOutputter xmlOutput = new XMLOutputter(); String xmlString = xmlOutput....

    java利用jdom读取xml文件

    5. 保存修改:如果需要保存对XML文件的修改,可以使用`XMLOutputter`类将`Document`对象转换回XML字符串,然后写回文件: ```java XMLOutputter outputter = new XMLOutputter(); String xmlString = outputter....

    jdom解析XML文件and把字符串解析成XML

    ### jdom解析XML文件及将字符串解析为XML #### 一、JDOM简介与环境搭建 JDOM(Java Document Object Model)是一种用Java语言编写的轻量级API,用于处理XML文档。它允许开发者轻松地读取、创建、修改XML文档,并将...

    Web.xml文件配置JDOM對XML文件操作

    package com.common.xml;... Document document=sAXBuilder.build(xmlFile); element=document.getRootElement().getChild(firstChild); }catch(Exception e){ e.printStackTrace(); } return element; } }

    java jdom解析xml

    - **优化策略**:如果确实需要处理大型XML文件,可以使用JDOM的SAXBuilder,它允许以SAX方式读取XML,但仍然使用JDOM API进行操作。 6. **示例代码** ```java import org.jdom2.Document; import org.jdom2....

    java利用jdom解析xml文件

    在Java中,JDOM提供了两种主要的方式来解析XML文件:SAX(Simple API for XML)和DOM(Document Object Model)。SAX是事件驱动的,逐行解析文件,适用于大文件,内存消耗小;而DOM则将整个XML文件加载到内存中,...

    JDOM相关解析XML文件实例

    本实例将探讨如何使用JDOM进行XML文件的解析。 首先,我们来看JDOM的基本结构。JDOM的核心类包括`Element`,代表XML文档中的元素;`Attribute`,表示元素的属性;`Document`,整个XML文档的根节点;以及`Builder`,...

    jdom解析xml文件小实例

    总结起来,JDOM为Java开发者提供了一种强大而灵活的方式来解析和操作XML文档。通过创建`Document`对象,我们可以访问XML的结构,包括元素、属性和文本内容。同时,利用XPath可以更精确地定位到XML文档的特定部分。在...

    jdom.jar xml解析

    3. **JDOM解析**:JDOM结合了DOM和SAX的优点,它允许开发者以DOM的方式操作XML,同时通过优化内存使用,降低了DOM的资源消耗。JDOM提供了直观的API,使得XML处理更符合Java程序员的习惯。 **JDOM的主要类和方法** 1...

    如何将xml的String字符串转化标准格式的String字符串(jdom)

    JDOM(Java Document Object Model)是一个专门为Java设计的XML API,它提供了对XML文档的全面控制,包括创建、修改和读取XML文档。通过JDOM,我们可以方便地处理XML字符串,确保其符合W3C的XML规范。 在开始之前,...

    JDOM对XML文件的读取

    在Java编程中,JDOM(Java Document Object Model)是处理XML的一种流行库,它提供了方便的方式来创建、修改和解析XML文档。本篇文章将深入探讨JDOM库如何实现XML文件的读取操作。 首先,为了使用JDOM,我们需要在...

    jdom读取xml全属性文件

    JDOM(Java Document Object Model)是Java的一个API,专门用来处理XML文档,提供了一种方便的方式来创建、修改和操作XML文档。本篇文章将详细探讨如何使用JDOM读取具有属性的XML文件,例如: ```xml ``` 首先,...

    JDOM读取XML,并且创建XML

    在IT行业中,XML(eXtensible Markup Language)是一种被广泛...无论是解析现有的XML文件还是构建新的XML文档,JDOM都能提供必要的支持。通过深入学习和实践,开发者可以充分利用JDOM的功能,提升XML处理的效率和质量。

    用jdom解析xml

    解析XML文档通常涉及读取文件并将其转换为JDOM对象。以下是一个基本示例: ```java import org.jdom2.Document; import org.jdom2.input.SAXBuilder; public class XmlDocumentParser { public Document parseXml...

Global site tag (gtag.js) - Google Analytics