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

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com.hexiang.utils; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; /** * 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的节点 * @param attributeName 要取值的属性名称 * @return 要获取的属性的值 * @author HX_2010-01-12 */ public static String getAttribute( Element element, String attributeName ) { return element.getAttribute( attributeName ); } /** * 获取指定节点下的文本 * @param element 要获取文本的节点 * @return 指定节点下的文本 * @author HX_2010-01-12 */ public static String getText( Element element ) { return element.getFirstChild().getNodeValue(); } /** * 解析某个xml文件,并在内存中创建DOM树 * @param xmlFile 要解析的XML文件 * @return 解析某个配置文件后的Document * @throws Exception xml文件不存在 */ public static Document parse( String xmlFile ) throws Exception { // 绑定XML文件,建造DOM树 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document domTree = db.parse( xmlFile ); return domTree; } /** * 获得某节点下的某个子节点(指定子节点名称,和某个属性的值) * 即获取parentElement下名字叫childName,并且属性attributeName的值为attributeValue的子结点 * @param parentElement 要获取子节点的那个父节点 * @param childName 要获取的子节点名称 * @param attributeName 要指定的属性名称 * @param attributeValue 要指定的属性的值 * @return 符合条件的子节点 * @throws Exception 子结点不存在或有多个符合条件的子节点 * @author HX_2008-12-01 */ public static Element getChildElement( Element parentElement, String childName, String attributeName, String attributeValue ) throws Exception { NodeList list = parentElement.getElementsByTagName( childName ); int count = 0; Element curElement = null; for ( int i = 0 ; i < list.getLength() ; i ++ ) { Element child = ( Element )list.item( i ); String value = child.getAttribute( attributeName ); if ( true == value.equals( attributeValue ) ) { curElement =

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值