公用函数--xml解析类

前端之家收集整理的这篇文章主要介绍了公用函数--xml解析类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

公用函数--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("&lt;"); break; case '>': result.append("&gt;"); break; case '&': result.append("&amp;"); break; case '"': result.append("&quot;"); 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; } }

猜你在找的XML相关文章