最近一段時(shí)間有空,啃了啃xml和與它相關(guān)的東東,做了一些實(shí)踐性的代碼和功能,做完后自己都不怎么滿足,不過(guò)實(shí)踐過(guò)程到是一個(gè)新手的典型例子。所以拿出來(lái)讓高手指點(diǎn)指點(diǎn)。^_^
由于一直做b/s結(jié)構(gòu)的東西,在加上一個(gè)做項(xiàng)目中的遺留問(wèn)題(tree型角色和tree型權(quán)限之間的交互),所以想做一個(gè)xml的解決方案。
當(dāng)然這個(gè)問(wèn)題的解決必須有對(duì)xml文檔對(duì)象操作的模塊的支持。這篇心得主要針對(duì)這個(gè)問(wèn)題。
設(shè)計(jì)圖如下:

XMLParser.class:xml解析器接口。
XMLParserTest.class:xml解析器接口實(shí)現(xiàn)子類。
XMLParserFactory.class :xml解析器工廠類。
XMLTool.class :xml工具類接口(對(duì)xml文檔進(jìn)行操作)。
XMLToolTest.class :xml工具類接口實(shí)現(xiàn)子類。
XMLToolShow.class :{xml工具類接口實(shí)現(xiàn)子類(所有方法的實(shí)現(xiàn)都是用XMLTool接口的對(duì)應(yīng)方法實(shí)現(xiàn),功能是通過(guò)setForm()靈活更換自己的兄弟類(XMLTool)作為 XML處理工具來(lái)獲得更好的效率和完善。}
XMLToolFactory.class :xml工具類工廠類。
還有兩個(gè)設(shè)計(jì)圖中沒(méi)有的class:
XmlBuilder.class :根據(jù)指定的document.Node生成規(guī)范的xml字符串。
XmlOutput.class :根據(jù)指定的xml字符串或InputStream生成指定的xml文件。
我在 XMLParserTest.class用到的是xml4j解析器.代碼如下:
package com.ceic.workflow.xml.Parser;
import com.ceic.workflow.xml.XMLParser;
import com.ibm.xml.parsers.*;
import java.io.*;
import org.xml.sax.InputSource;
/**
* XML解析器test
* Title: XML解析器test
* Description: XML解析器test
* Copyright: Copyright (c) 2003
* Company: 國(guó)電信息中心
* @author 張治中
* @version 1.0
*/
public class XMLParserTest implements XMLParser
{
public XMLParserTest()
{
}
/**
* 解析path位置的xml文件
* @param path 文件位置
* @param vali 備用參數(shù)
* @return Object
* @roseuid 3ECC2FC10043
*/
public Object parse(String path, boolean vali)
{
if(path!=null&&path.length()>0){
try{
DOMParser parser = new DOMParser();
parser.parse(path);
return parser.getdocument.)
}catch(Exception e){
System.out.+path+"/","+vali+")出錯(cuò)"+e.getMessage());
return null;
}
}
return null;
}
/**
* 解析xmlString字符串
* @param xmlString xml字符串
* @return Object
* @roseuid 3ECC2FC10043
*/
public Object parseString(String xmlString)
{
if(xmlString!=null&&xmlString.length()>0){
try{
DOMParser parser = new DOMParser();
StringReader rd=new StringReader(xmlString);
InputSource in=new InputSource(rd);
parser.parse(in);
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注