公用函数--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 |
|
函数描述: |
||
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") 返回结果 |
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; } }