公用函数--xml解析类
函数编号 | 1-X-001 | |
函数描述: | 载入一个xml文档 | |
函数名称: | publicstatic Document load(String filename) | |
| 入参: | uri文件路径 |
| 返回结果: | 成功返回Document对象,失败返回null |
举例: | 调用方法 Document doc = XmlUtil.load("d:/web.xml"); 返回结果 Document 对象,失败则为null
|
函数编号 | 1-X-002 | |
函数描述: | 将xml支持的格式,包括特殊字符、null显示成""以及数字等于0时显示成"" | |
函数名称: | publicstatic String toXmlForm(Object obj) | |
| 入参: | Object obj 要转换的对象 |
| 返回结果: | Stringxml支持的字符串 |
举例: |
调用方法 publicstatic String toXmlForm(Object obj) 返回结果 Wed Jan 07 16:20:43 CST 2009
|
函数编号 | 1-X-003 | |
函数描述: | 将xml文档内容转为String | |
函数名称: | publicstatic String doc2String(Document document) | |
| 入参: | Document xml文档对象 |
| 返回结果: | Xml内容的字符串 |
举例: | 调用方法 Document doc = XmlUtil.load("d:/web.xml"); System.out.println(XmlUtil.doc2String(doc)); 返回结果 <?xml version="1.0" encoding="GB2312"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
|
函数编号 | 1-X-004 | |
函数描述: | 将字符串转换为Document | |
函数名称: | publicstatic Document string2Document(String s) | |
| 入参: | sxml格式的字符串 |
| 返回结果: | Xml Document 对象 |
举例: | 调用方法 StringBuffer sb = new StringBuffer(); sb.append("<?xml version='1.0' encoding='GB2312'?>"); sb.append("<web-app xmlns='http://java.sun.com/xml/ns/j2ee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' version='2.4' xsi:schemaLocation='http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd'>"); sb.append("<welcome-file-list>"); sb.append("<welcome-file>index.jsp</welcome-file>"); sb.append("</welcome-file-list>"); sb.append("</web-app>"); String xmlString = sb.toString(); System.out.println(XmlUtil.string2Document(xmlString)); 返回结果 org.dom4j.tree.DefaultDocument@f3d6a5 [Document: name null]
|
函数编号 | 1-X-005 | |
函数描述: | 将Document对象保存为一个xml文件到本地 | |
函数名称: | publicstaticboolean doc2XmlFile(Document document,String filename) | |
| 入参: | filename保存的文件名 document需要保存的document对象 |
| 返回结果: | true:保存成功 flase:失败 |
举例: | 调用方法 Document doc = XmlUtil.load("d:/web.xml"); XmlUtil.doc2XmlFile(doc,"c:/web.xml") 返回结果 true,在c盘保存了一个web.xml的文件
|
函数编号 | 1-X-006 | |
函数描述: | 将xml格式的字符串保存为本地文件,如果字符串格式不符合xml规则,则返回失败 | |
函数名称: | publicstaticboolean string2XmlFile(String str,String filename) | |
| 入参: | filename保存的文件名 str需要保存的字符串 |
| 返回结果: | true:保存成功 flase:失败 |
举例: |
调用方法 StringBuffer sb = new StringBuffer(); sb.append("<?xml version='1.0' encoding='GB2312'?>"); sb.append("<web-app xmlns='http://java.sun.com/xml/ns/j2ee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' version='2.4' xsi:schemaLocation='http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd'>"); sb.append("<welcome-file-list>"); sb.append("<welcome-file>index.jsp</welcome-file>"); sb.append("</welcome-file-list>"); sb.append("</web-app>"); String xmlString= sb.toString(); XmlUtil.string2XmlFile(xmlString,"e:/web.xml") 返回结果 True,在e盘生成了一个web.xml文件
|
package xmlutil;
//文件包
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileWriter;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
* <p> XmlUtil.java </p>
* <p>
* XML相关工具类
* </p>
*/
public class XmlUtil {
/**
* 将一个对象转换成xml支持的格式,包括特殊字符、null显示成""以及数字等于0时显示成""
*
* @param obj
* @return
*/
public static String toXmlForm(Object obj) {
if (obj == null) {
return "";
}
String message = obj.toString();
char content[] = new char[message.length()];
message.getChars(0, message.length(), content, 0);
StringBuffer result = new StringBuffer(content.length + 50);
for (int i = 0; i < content.length; i++) {
switch (content[i]) {
case '<':
result.append("<");
break;
case '>':
result.append(">");
break;
case '&':
result.append("&");
break;
case '"':
result.append(""");
break;
default:
result.append(content[i]);
}
}
return (result.toString());
}
/**
* doc2String
* 将xml文档内容转为String
* @return 字符串
* @param document
*/
public static String doc2String(Document document)
{
String s = "";
try
{
//使用输出流来进行转化
ByteArrayOutputStream out = new ByteArrayOutputStream();
//使用GB2312编码
OutputFormat format = new OutputFormat(" ", true, "GB2312");
XMLWriter writer = new XMLWriter(out, format);
writer.write(document);
s = out.toString("GB2312");
}catch(Exception ex)
{
ex.printStackTrace();
}
return s;
}
/**
* string2Document
* 将字符串转为Document
* @return
* @param s xml格式的字符串
*/
public static Document string2Document(String s)
{
Document doc = null;
try
{
doc = DocumentHelper.parseText(s);
}catch(Exception ex)
{
ex.printStackTrace();
}
return doc;
}
/**
* doc2XmlFile
* 将Document对象保存为一个xml文件到本地
* @return true:保存成功 flase:失败
* @param filename 保存的文件名
* @param document 需要保存的document对象
*/
public static boolean doc2XmlFile(Document document,String filename)
{
boolean flag = true;
try
{
/* 将document中的内容写入文件中 */
//默认为UTF-8格式,指定为"GB2312"
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GB2312");
XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)),format);
writer.write(document);
writer.close();
}catch(Exception ex)
{
flag = false;
ex.printStackTrace();
}
return flag;
}
/**
* string2XmlFile
* 将xml格式的字符串保存为本地文件,如果字符串格式不符合xml规则,则返回失败
* @return true:保存成功 flase:失败
* @param filename 保存的文件名
* @param str 需要保存的字符串
*/
public static boolean string2XmlFile(String str,String filename)
{
boolean flag = true;
try
{
Document doc = DocumentHelper.parseText(str);
flag = doc2XmlFile(doc,filename);
}catch (Exception ex)
{
flag = false;
ex.printStackTrace();
}
return flag;
}
/**
* load
* 载入一个xml文档
* @return 成功返回Document对象,失败返回null
* @param uri 文件路径
*/
public static Document load(String filename)
{
Document document = null;
try
{
SAXReader saxReader = new SAXReader();
document = saxReader.read(new File(filename));
}
catch (Exception ex){
ex.printStackTrace();
}
return document;
}
}