捕風之巢

          統(tǒng)計

          留言簿(3)

          java友情鏈接

          閱讀排行榜

          評論排行榜

          采用org.w3c.dom進行XML操作(三) (轉(zhuǎn)載)

          采用org.w3c.dom進行XML操作(三)
          ?

          XmlCreater.java

          ?用于創(chuàng)建XML文件

          /********************************************************************
          ?* 項目名稱????:rochoc???<p>
          ?* 包名稱? ????:rochoc.xml.oper?<p>
          ?* 文件名稱????:XmlCreater???<p>
          ?* 編寫者 ????:luoc????<p>
          ?* 編寫日期????:2005-6-22????<p>
          ?* 程序功能(類)描述?:?創(chuàng)建DOM并生成XML文件????? <p>
          ?*
          ?* 程序變更日期???:
          ?* 變更作者????:
          ?* 變更說明????:
          ********************************************************************/
          package rochoc.xml.oper;

          import java.io.File;

          import javax.xml.parsers.DocumentBuilder;
          import javax.xml.parsers.DocumentBuilderFactory;
          import javax.xml.parsers.ParserConfigurationException;
          import javax.xml.transform.Transformer;
          import javax.xml.transform.TransformerConfigurationException;
          import javax.xml.transform.TransformerException;
          import javax.xml.transform.TransformerFactory;
          import javax.xml.transform.dom.DOMSource;
          import javax.xml.transform.stream.StreamResult;

          import org.apache.log4j.Logger;
          import org.w3c.dom.Document;
          import org.w3c.dom.Element;

          /**
          ?* 類名:XmlCreater? <p>
          ?* 類描述: 創(chuàng)建DOM并生成XML文件<p>
          ?* 編寫者 :luoc<p>
          ?* 編寫日期 :2005-6-22<p>
          ?* 主要public成員變量:<p>
          ?* 主要public方法:?? <p>
          ?**/

          public class XmlCreater
          {
          ??? /**
          ???? *構(gòu)造函數(shù)說明:?????? <p>
          ???? *參數(shù)說明:@param path? xml文件路徑 <p>
          ??? **/
          ??? public XmlCreater(String path)
          ??? {
          ??????? this.path=path;
          ??????? init();
          ??? }
          ???
          ??? /**
          ??? * 方法名稱:init<p>
          ??? * 方法功能: 初始化函數(shù)?????????? <p>
          ??? * 參數(shù)說明: <p>
          ??? * 返回:void <p>
          ??? * 作者:luoc
          ??? * 日期:2005-6-22
          ??? **/
          ??? private void init()
          ??? {
          ??????? DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
          ??????? try
          ??????? {
          ??????????? DocumentBuilder builder=factory.newDocumentBuilder();
          ??????????? doc=builder.newDocument();//新建DOM
          ??????? }catch(ParserConfigurationException e)
          ??????? {
          ??????????? logger.error("Parse DOM builder error:"+e);
          ??????? }
          ??? }
          ???
          ??? /**
          ??? * 方法名稱:createRootElement<p>
          ??? * 方法功能:創(chuàng)建根結(jié)點,并返回??????????? <p>
          ??? * 參數(shù)說明:@param rootTagName <p>
          ??? * 返回:Element <p>
          ??? * 作者:luoc
          ??? * 日期:2005-6-22
          ??? **/
          ??? public Element createRootElement(String rootTagName)
          ??? {????
          ??????? if(doc.getDocumentElement()==null)
          ??????? {
          ??????????? logger.debug("create root element '"+rootTagName+"' success.");
          ??????????? Element root=doc.createElement(rootTagName);
          ??????????? doc.appendChild(root);
          ??????????? return root;
          ??????? }
          ??????? logger.warn("this dom's root element is exist,create fail.");
          ??????? return doc.getDocumentElement();
          ??? }
          ???
          ??? /**
          ??? * 方法名稱:createElement<p>
          ??? * 方法功能:在parent結(jié)點下增加子結(jié)點tagName<p>
          ??? * 參數(shù)說明:@param parent
          ??? * 參數(shù)說明:@param tagName <p>
          ??? * 返回:Element <p>
          ??? * 作者:luoc
          ??? * 日期:2005-6-22
          ??? **/
          ??? public Element createElement(Element parent,String tagName)
          ??? {
          ??????? Document doc=parent.getOwnerDocument();
          ??????? Element child=doc.createElement(tagName);
          ??????? parent.appendChild(child);???????
          ??????? return child;
          ??? }
          ???
          ??? /**
          ??? * 方法名稱:createElement<p>
          ??? * 方法功能:在parent結(jié)點下增加值為value的子結(jié)點tabName<p>
          ??? * 參數(shù)說明:@param parent
          ??? * 參數(shù)說明:@param tagName
          ??? * 參數(shù)說明:@param value <p>
          ??? * 返回:Element <p>
          ??? * 作者:luoc
          ??? * 日期:2005-6-22
          ??? **/
          ??? public Element createElement(Element parent,String tagName,String value)
          ??? {
          ??????? Document doc=parent.getOwnerDocument();
          ??????? Element child=doc.createElement(tagName);
          ??????? XmlOper.setElementValue(child,value);
          ??????? parent.appendChild(child);
          ??????? return child;
          ??? }
          ???
          ??? /**
          ??? * 方法名稱:createAttribute<p>
          ??? * 方法功能:在parent結(jié)點下增加屬性 <p>
          ??? * 參數(shù)說明:@param parent
          ??? * 參數(shù)說明:@param attrName 屬性名
          ??? * 參數(shù)說明:@param attrValue 屬性值<p>
          ??? * 返回:void <p>
          ??? * 作者:luoc
          ??? * 日期:2005-6-22
          ??? **/
          ??? public void createAttribute(Element parent,String attrName,String attrValue)
          ??? {
          ??????? XmlOper.setElementAttr(parent,attrName,attrValue);???????
          ??? }
          ???
          ??? /**
          ??? * 方法名稱:buildXmlFile<p>
          ??? * 方法功能:根據(jù)DOM生成XML文件<p>
          ??? * 參數(shù)說明: <p>
          ??? * 返回:void <p>
          ??? * 作者:luoc
          ??? * 日期:2005-6-22
          ??? **/
          ??? public void buildXmlFile()
          ??? {
          ??????? TransformerFactory tfactory=TransformerFactory.newInstance();
          ??????? try
          ??????? {
          ??????????? Transformer transformer=tfactory.newTransformer();
          ??????????? DOMSource source=new DOMSource(doc);
          ??????????? logger.debug("New DOMSource success.");
          ??????????? StreamResult result=new StreamResult(new File(path));
          ??????????? logger.debug("New StreamResult success.");
          ??????????? transformer.setOutputProperty("encoding","GBK");
          ??????????? transformer.transform(source,result);
          ??????????? logger.debug("Build XML File '"+path+"' success.");
          ??????? }catch(TransformerConfigurationException e)
          ??????? {
          ??????????? logger.error("Create Transformer error:"+e);
          ??????? }catch(TransformerException e)
          ??????? {
          ??????????? logger.error("Transformer XML file error:"+e);
          ??????? }
          ??? }
          ???
          ??? /**
          ???? * @return 返回 doc。
          ???? */
          ??? public Document getDoc()
          ??? {
          ??????? return doc;
          ??? }
          ??? /**
          ???? * @param doc 要設(shè)置的 doc。
          ???? */
          ??? public void setDoc(Document doc)
          ??? {
          ??????? this.doc = doc;
          ??? }
          ??? /**
          ???? * @return 返回 path。
          ???? */
          ??? public String getPath()
          ??? {
          ??????? return path;
          ??? }
          ??? /**
          ???? * @param path 要設(shè)置的 path。
          ???? */
          ??? public void setPath(String path)
          ??? {
          ??????? this.path = path;
          ??? }
          ??? /*全局變量*/
          ??? private Logger logger = Logger.getLogger(getClass().getName());
          ??? private Document doc=null;//新創(chuàng)建的DOM
          ??? private String path=null;//生成的XML文件絕對路徑
          }

          posted on 2007-03-22 14:50 捕風 閱讀(734) 評論(0)  編輯  收藏 所屬分類: xml應(yīng)用

          主站蜘蛛池模板: 教育| 辽阳市| 昌图县| 潼南县| 饶阳县| 丰镇市| 桐柏县| 竹溪县| 光泽县| 淮安市| 吴桥县| 吐鲁番市| 宁武县| 手游| 当涂县| 民丰县| 商水县| 和田市| 淳安县| 志丹县| 阿拉善右旗| 巴马| 双鸭山市| 玉门市| 泽州县| 临沂市| 潼南县| 日土县| 和静县| 朝阳县| 云和县| 北安市| 定南县| 仙居县| 固镇县| 东乌| 汕尾市| 商河县| 勃利县| 清水县| 新津县|