捕風之巢

          統計

          留言簿(3)

          java友情鏈接

          閱讀排行榜

          評論排行榜

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

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

          XmlCreater.java

          ?用于創建XML文件

          /********************************************************************
          ?* 項目名稱????:rochoc???<p>
          ?* 包名稱? ????:rochoc.xml.oper?<p>
          ?* 文件名稱????:XmlCreater???<p>
          ?* 編寫者 ????:luoc????<p>
          ?* 編寫日期????:2005-6-22????<p>
          ?* 程序功能(類)描述?:?創建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>
          ?* 類描述: 創建DOM并生成XML文件<p>
          ?* 編寫者 :luoc<p>
          ?* 編寫日期 :2005-6-22<p>
          ?* 主要public成員變量:<p>
          ?* 主要public方法:?? <p>
          ?**/

          public class XmlCreater
          {
          ??? /**
          ???? *構造函數說明:?????? <p>
          ???? *參數說明:@param path? xml文件路徑 <p>
          ??? **/
          ??? public XmlCreater(String path)
          ??? {
          ??????? this.path=path;
          ??????? init();
          ??? }
          ???
          ??? /**
          ??? * 方法名稱:init<p>
          ??? * 方法功能: 初始化函數?????????? <p>
          ??? * 參數說明: <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>
          ??? * 方法功能:創建根結點,并返回??????????? <p>
          ??? * 參數說明:@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結點下增加子結點tagName<p>
          ??? * 參數說明:@param parent
          ??? * 參數說明:@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結點下增加值為value的子結點tabName<p>
          ??? * 參數說明:@param parent
          ??? * 參數說明:@param tagName
          ??? * 參數說明:@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結點下增加屬性 <p>
          ??? * 參數說明:@param parent
          ??? * 參數說明:@param attrName 屬性名
          ??? * 參數說明:@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>
          ??? * 方法功能:根據DOM生成XML文件<p>
          ??? * 參數說明: <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 要設置的 doc。
          ???? */
          ??? public void setDoc(Document doc)
          ??? {
          ??????? this.doc = doc;
          ??? }
          ??? /**
          ???? * @return 返回 path。
          ???? */
          ??? public String getPath()
          ??? {
          ??????? return path;
          ??? }
          ??? /**
          ???? * @param path 要設置的 path。
          ???? */
          ??? public void setPath(String path)
          ??? {
          ??????? this.path = path;
          ??? }
          ??? /*全局變量*/
          ??? private Logger logger = Logger.getLogger(getClass().getName());
          ??? private Document doc=null;//新創建的DOM
          ??? private String path=null;//生成的XML文件絕對路徑
          }

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

          主站蜘蛛池模板: 四子王旗| 民县| 罗田县| 临桂县| 睢宁县| 崇左市| 新津县| 敦煌市| 观塘区| 肥乡县| 伊宁县| 宾阳县| 兴文县| 安吉县| 沭阳县| 金华市| 金秀| 岳阳市| 德安县| 稷山县| 纳雍县| 虹口区| 松潘县| 绥中县| 濮阳市| 霍林郭勒市| 武强县| 罗江县| 县级市| 厦门市| 兴文县| 巴塘县| 达孜县| 工布江达县| 海城市| 铁岭市| 澳门| 三河市| 冷水江市| 若尔盖县| 梁河县|