公用函数--xml解析类

原创 2013年12月03日 15:58:25

 

公用函数--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;
    }
   
}

 

 

 

 

相关文章推荐

针对sql错误:“除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效”的原理与解决

执行sql语句: select * from ( select * from tab where ID>20 order by userID desc ) as a order by da...

除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效

SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后...

c#公用函数

  • 2013年09月04日 13:17
  • 161KB
  • 下载

TIPTOP公用函数

  • 2008年09月18日 18:15
  • 63KB
  • 下载

artTemplate访问外部公用函数(二)

有时候我们的Json数据不能直接显示,还需要通过其他函数进行转换处理才能正常显示,这里就涉及到了访问外部函数。 先给出官方实例: helper-demo 辅助方法 年 MM月 d...
  • woai671
  • woai671
  • 2015年09月22日 15:32
  • 2685

C# 公用函数包

  • 2011年09月18日 20:12
  • 3.14MB
  • 下载

VB6获取本机所有IP地址公用函数

因为正好有用到,整了个公用函数,一次获取本机全部IP地址:Option Explicit Private Declare Function WSAstartup Lib "WSOCK32.DLL...
  • tanaya
  • tanaya
  • 2013年03月25日 01:21
  • 3442

delphi高程公用函数

  • 2006年02月23日 09:05
  • 40KB
  • 下载

一些公用的javascript函数

  • 2009年01月17日 23:26
  • 1KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:公用函数--xml解析类
举报原因:
原因补充:

(最多只允许输入30个字)