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

 

 

 

 

XML文件的解析--非常详细的libxml库函数解释说明并附带实例

libxml(一)   摘要  Libxml是个有免费许可的用于处理XML、能轻松跨越多个平台的C语言库。这个指南提供他的基本函数的例子。 绪论  Libxml是个实现读...
  • shanzhizi
  • shanzhizi
  • 2012年07月05日 14:29
  • 3491

XML文件的解析--libxml库函数解释

xml|函数 libxml(一)                                   摘要 Libxml是一个有免费许可的用于处理XML、可以轻松跨越多个平台的C语言库。这个...
  • henry115
  • henry115
  • 2011年12月09日 18:32
  • 3605

XML的文件解析类————比较常用

 /// /// Author: jiangxiaoqiang /// public class XmlReader {   //=====================...
  • luoyanqing119
  • luoyanqing119
  • 2015年12月11日 16:16
  • 1066

PHP的XML分析函数

PHP的XML分析函数 来源:chinaasp 首先我得承认我喜欢计算机标准。如果每个人都遵从这个行业的标准,互联网将会是一个更好的媒体。使用标准化的数据交换格式才能使开放的和独立于平台的计算模式切实...
  • bjbs_270
  • bjbs_270
  • 2004年10月18日 11:03
  • 1023

自己写一个好的PHP解析xml的类

class ome_xml {           /**      * xml资源     *      * @var        resource      * @see      ...
  • u013219814
  • u013219814
  • 2017年04月03日 17:51
  • 616

XML通用解析

// XML解析.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include //#include #include #include #inc...
  • u011009192
  • u011009192
  • 2016年09月25日 23:12
  • 288

C#操作Xml通用工具类

  1个简单的处理XML的工具类代码1usingSystem;usingSystem.Xml;namespace WLERP.Common.Util{    ///     /// Xml 操作工具类...
  • bobo830
  • bobo830
  • 2011年04月20日 12:21
  • 2772

PHP XML操作的各种方法解析

[此处原创]今天把自己的应用转到另一个开放平台上,由于那个平台的提供的SDK大量的调用了服务器本地IO操作,从初始化的第一步就要写本地IO,我的应用是部署在SAE上的,不允许本地IO,所以直接导致了所...
  • Arcan
  • Arcan
  • 2012年05月12日 11:25
  • 2987

android中解析xml文件的工具类XmlUtils

----------------------------------------------------------------------------------------------------...
  • huwenzhi1991
  • huwenzhi1991
  • 2015年06月19日 10:02
  • 3349

安卓快速解析xml工具类

xml工具类XmlHelper利用sax的DefaultHandler做快速的解析,并通过反射把解析结果储存在一个对象里或者一个储存该对象的list里。XmlHelper代码import java.i...
  • u014580558
  • u014580558
  • 2015年03月10日 13:28
  • 2412
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:公用函数--xml解析类
举报原因:
原因补充:

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