jdom处理的XML Document 和String 之间的相互转化
2024-10-09 09:12:38
package util; import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.StringReader; 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();
} }
}
最新文章
- CSS自动换行
- ID3决策树的Java实现
- GATK-BWA-MEM handle GRCh38 alternate contig mappings
- spring boot实战(第十三篇)自动配置原理分析
- CSS基础知识点(二)——居中
- 51nod1057 N的阶乘
- asp.net gridview中增加单击单元格事件
- XP系统取消开机硬件检查
- SQL学习之计算字段的用法与解析
- 获取所有栈的信息,只有最上面的和最下面的,但是不能获取栈中间的activity信息
- 018-继承-OC笔记
- vue + websocket 的使用
- linux 返回上次历史目录
- bp代码
- MapReduce过程详解及其性能优化
- Java WebService 简单实例[转载]
- sqoop2问题解决
- Mysql官方文档中争对安全添加列的处理方法。Mysql Add a Column to a table if not exists
- 对于PHP绘图技术的理解
- c# 水晶报表使用说明