simplexmlworkshop.java
来自「xiorkflow工作流源码 是一个java开发的工作流源码」· Java 代码 · 共 214 行
JAVA
214 行
package name.xio.xml;
import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.stream.StreamSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdom.*;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import org.jdom.input.SAXBuilder;
/**
* XML文档的工作作坊,提供一些基本的对xml的操作
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2006</p>
* @author xio
*/
public class SimpleXMLWorkShop {
/**
* 将磁盘文件解析成Document对象
* @param filePath String:磁盘文件路径,URI for the input
* @return Document
*/
public static Document file2Doc(String filePath) throws IOException,
JDOMException {
File file = new File(filePath);
return file2Doc(file);
}
/**
* 将磁盘文件解析成Document对象
* @param file File:磁盘文件
* @return Document
*/
public static Document file2Doc(File file) throws IOException,
JDOMException {
SAXBuilder saxBuilder = new SAXBuilder();
Document doc = saxBuilder.build(file);
return doc;
}
/**
* 从xml脚本解析成Document对象
* @param xmlStr String
* @return Document
*/
public static Document str2Doc(String xmlStr) throws IOException,
JDOMException {
InputStream inputStream = new ByteArrayInputStream(xmlStr
.getBytes(encoding));
SAXBuilder saxBuilder = new SAXBuilder();
Document doc = saxBuilder.build(inputStream);
return doc;
}
/**
* 将Docment对象解析成脚本格式,
* 返回的是中文编码脚本
* @param doc Document
* @return String
*/
public static String doc2Str(Document doc) {
if (doc == null) {
return null;
}
Format format = Format.getPrettyFormat();
format.setExpandEmptyElements(true);
format.setEncoding(encoding);
return doc2Str(doc, format);
}
public static String doc2Str(Document doc, Format format) {
if (doc == null) {
log.error("xml文档为空");
return null;
}
XMLOutputter outputter = new XMLOutputter(format);
String str = outputter.outputString(doc);
return str;
}
/**
* 把Document写到指定路径的xml文件
* @param doc Document:要输出的Document对象
* @param filePath String:输出的文件路径
*/
public static void outputXML(Document doc, String filePath) throws FileNotFoundException,
IOException {
outputXML(doc, new File(filePath));
}
public static void outputXML(Document doc, String filePath, Format format) throws FileNotFoundException,
IOException {
outputXML(doc, new File(filePath), format);
}
/**
* 把Document写到指定路径的xml文件
*
* @param doc Document:要输出的Document对象
* @param file File:输出的文件路径
*/
public static void outputXML(Document doc, File file) throws FileNotFoundException,
IOException {
outputXML(doc, new FileOutputStream(file));
}
public static void outputXML(Document doc, File file, Format format) throws FileNotFoundException,
IOException {
outputXML(doc, new FileOutputStream(file), format);
}
public static void outputXML(Document doc, OutputStream outputStream) throws FileNotFoundException,
IOException {
if (doc == null) {
log.error("输出时,xml文档为空,未进行输出操作");
return;
}
Format format = Format.getPrettyFormat();
format.setEncoding(encoding);
format.setExpandEmptyElements(true);
XMLOutputter outputter = new XMLOutputter(format);
outputter.output(doc, outputStream);
outputStream.close();
}
public static void outputXML(Document doc,
OutputStream outputStream,
Format format) throws FileNotFoundException, IOException {
if (doc == null) {
log.error("输出时,xml文档为空,未进行输出操作");
return;
}
XMLOutputter outputter = new XMLOutputter(format);
outputter.output(doc, outputStream);
}
/**
* xml文件根据xsl样式表文件生成html文件
* @param xmlFile File
* @param htmlFile File
* @param xslFile File
*/
public static void xmlToHtml(File xmlFile, File htmlFile, File xslFile) throws TransformerConfigurationException,
FileNotFoundException,
TransformerException {
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new StreamSource(
new FileInputStream(xslFile)));
transformer.transform(new StreamSource(new FileInputStream(xmlFile)),
new StreamResult(new FileOutputStream(htmlFile)));
}
/**
* Document根据xsl样式表文件生成html文件
* @param doc Document
* @param htmlFile File
* @param xslFile File
*/
public static void xmlToHtml(Document doc, File htmlFile, File xslFile) throws TransformerConfigurationException,
FileNotFoundException,
TransformerException {
if (doc == null) {
log.error("输出时,xml文档为空,未进行输出操作");
return;
}
String xmlStr = doc2Str(doc);
InputStream inputStream = new ByteArrayInputStream(xmlStr.getBytes());
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new StreamSource(
new FileInputStream(xslFile)));
transformer.transform(new StreamSource(inputStream), new StreamResult(
new FileOutputStream(htmlFile)));
}
/**
* 改变编码格式
* @param charactorSet
*/
public static void setEndocing(String charactorSet) {
encoding = charactorSet;
}
/**
* @return Returns the encoding.
*/
public static String getEncoding() {
return encoding;
}
//日志记录器
private static Log log = LogFactory.getLog(SimpleXMLWorkShop.class);
//默认编码方式
private static String encoding = "UTF-8";
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?