<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Feng.Li's Java See

    抓緊時間,大步向前。
    隨筆 - 95, 文章 - 4, 評論 - 58, 引用 - 0
    數據加載中……

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

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

    XmlOper.java

    ?用于操作XML文件,包括查找、新增、刪除、修改結點

    ?/********************************************************************
    ?* 項目名稱????:rochoc???<p>
    ?* 包名稱? ????:rochoc.xml.oper?<p>
    ?* 文件名稱????:XmlOper???<p>
    ?* 編寫者 ????:luoc????<p>
    ?* 編寫日期????:2005-6-22????<p>
    ?* 程序功能(類)描述?:?對XML進行讀寫操作????? <p>
    ?*
    ?* 程序變更日期???:
    ?* 變更作者????:
    ?* 變更說明????:
    ********************************************************************/
    package rochoc.xml.oper;

    import java.util.ArrayList;

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

    /**
    ?* 類名:XmlOper? <p>
    ?* 類描述:對XML文件進行讀寫操作,均為靜態(tài)函數 <p>
    ?* 編寫者 :luoc<p>
    ?* 編寫日期 :2005-6-22<p>
    ?* 主要public成員變量:<p>
    ?* 主要public方法:?? <p>
    ?**/

    public class XmlOper
    {
    ??? /**
    ???? *構造函數說明:?????? <p>
    ???? *參數說明:?? <p>
    ??? **/
    ??? private XmlOper()
    ??? {???????
    ??? }
    ???
    ??? /**
    ??? * 方法名稱:getNodeList<p>
    ??? * 方法功能:獲取父結點parent的所有子結點<p>
    ??? * 參數說明:@param parent
    ??? * 參數說明:@return <p>
    ??? * 返回:NodeList <p>
    ??? * 作者:luoc
    ??? * 日期:2005-6-22
    ??? **/
    ??? public static NodeList getNodeList(Element parent)
    ??? {
    ??????? return parent.getChildNodes();
    ??? }
    ???
    ??? /**
    ??? * 方法名稱:getElementsByName<p>
    ??? * 方法功能:在父結點中查詢指定名稱的結點集??????????? <p>
    ??? * 參數說明:@param parent
    ??? * 參數說明:@param name
    ??? * 參數說明:@return <p>
    ??? * 返回:Element[] <p>
    ??? * 作者:luoc
    ??? * 日期:2005-6-22
    ??? **/
    ??? public static Element [] getElementsByName(Element parent,String name)
    ??? {
    ??????? ArrayList resList=new ArrayList();
    ??????? NodeList nl=getNodeList(parent);
    ??????? for(int i=0;i<nl.getLength();i++)
    ??????? {
    ??????????? Node nd=nl.item(i);
    ??????????? if(nd.getNodeName().equals(name))
    ??????????? {
    ??????????????? resList.add(nd);
    ??????????? }
    ??????? }
    ??????? Element [] res=new Element [resList.size()];
    ??????? for(int i=0;i<resList.size();i++)
    ??????? {
    ??????????? res[0]=(Element)resList.get(i);
    ??????? }???????
    ??????? logger.debug(parent.getNodeName()+"'s children of "+name+
    ??????????????? "'s num:"+res.length);
    ??????? return res;
    ??? }
    ???
    ??? /**
    ??? * 方法名稱:getElementName<p>
    ??? * 方法功能:獲取指定Element的名稱??????????? <p>
    ??? * 參數說明:@param element
    ??? * 參數說明:@return <p>
    ??? * 返回:String <p>
    ??? * 作者:luoc
    ??? * 日期:2005-6-22
    ??? **/
    ??? public static String getElementName(Element element)
    ??? {
    ??????? return element.getNodeName();
    ??? }
    ???
    ??? /**
    ??? * 方法名稱:getElementValue<p>
    ??? * 方法功能:獲取指定Element的值<p>
    ??? * 參數說明:@param element
    ??? * 參數說明:@return <p>
    ??? * 返回:String <p>
    ??? * 作者:luoc
    ??? * 日期:2005-6-22
    ??? **/
    ??? public static String getElementValue(Element element)
    ??? {
    ??????? NodeList nl=element.getChildNodes();
    ??????? for(int i=0;i<nl.getLength();i++)
    ??????? {
    ??????????? if(nl.item(i).getNodeType()==Node.TEXT_NODE)//是一個Text Node
    ??????????? {???????????
    ??????????????? logger.debug(element.getNodeName()+" has a Text Node.");
    ??????????????? return element.getFirstChild().getNodeValue();
    ??????????? }
    ??????? }??
    ??????? logger.error(element.getNodeName()+" hasn't a Text Node.");
    ??????? return null;
    ??? }
    ???
    ??? /**
    ??? * 方法名稱:getElementAttr<p>
    ??? * 方法功能:獲取指定Element的屬性attr的值??????????? <p>
    ??? * 參數說明:@param element
    ??? * 參數說明:@param attr
    ??? * 參數說明:@return <p>
    ??? * 返回:String <p>
    ??? * 作者:luoc
    ??? * 日期:2005-6-22
    ??? **/
    ??? public static String getElementAttr(Element element,String attr)
    ??? {
    ??????? return element.getAttribute(attr);
    ??? }
    ???
    ??? /**
    ??? * 方法名稱:setElementValue<p>
    ??? * 方法功能:設置指定Element的值??????????? <p>
    ??? * 參數說明:@param element
    ??? * 參數說明:@param val <p>
    ??? * 返回:void <p>
    ??? * 作者:luoc
    ??? * 日期:2005-6-22
    ??? **/
    ??? public static void setElementValue(Element element,String val)
    ??? {
    ??????? Node node=element.getOwnerDocument().createTextNode(val);
    ??????? NodeList nl=element.getChildNodes();
    ??????? for(int i=0;i<nl.getLength();i++)
    ??????? {
    ??????????? Node nd=nl.item(i);
    ??????????? if(nd.getNodeType()==Node.TEXT_NODE)//是一個Text Node
    ??????????? {???????????
    ????????????????? nd.setNodeValue(val);
    ????????????????? logger.debug("modify "+element.getNodeName()+"'s node value succe.");
    ????????????????? return;
    ??????????? }
    ??????? }??
    ??????? logger.debug("new "+element.getNodeName()+"'s node value succe.");
    ??????? element.appendChild(node);???????
    ??? }
    ???
    ??? /**
    ??? * 方法名稱:setElementAttr<p>
    ??? * 方法功能:設置結點Element的屬性<p>
    ??? * 參數說明:@param element
    ??? * 參數說明:@param attr
    ??? * 參數說明:@param attrVal <p>
    ??? * 返回:void <p>
    ??? * 作者:luoc
    ??? * 日期:2005-6-22
    ??? **/
    ??? public static void setElementAttr(Element element,
    ??????????? String attr,String attrVal)
    ??? {
    ??????? element.setAttribute(attr,attrVal);
    ??? }
    ???
    ???
    ??? /**
    ??? * 方法名稱:addElement<p>
    ??? * 方法功能:在parent下增加結點child<p>
    ??? * 參數說明:@param parent
    ??? * 參數說明:@param child <p>
    ??? * 返回:void <p>
    ??? * 作者:luoc
    ??? * 日期:2005-6-22
    ??? **/
    ??? public static void addElement(Element parent,Element child)
    ??? {
    ??????? parent.appendChild(child);
    ??? }
    ???
    ??? /**
    ??? * 方法名稱:addElement<p>
    ??? * 方法功能:在parent下增加字符串tagName生成的結點<p>
    ??? * 參數說明:@param parent
    ??? * 參數說明:@param tagName <p>
    ??? * 返回:void <p>
    ??? * 作者:luoc
    ??? * 日期:2005-6-22
    ??? **/
    ??? public static void addElement(Element parent,String tagName)
    ??? {???????
    ??????? Document doc=parent.getOwnerDocument();
    ??????? Element child=doc.createElement(tagName);
    ??????? parent.appendChild(child);
    ??? }
    ???
    ??? /**
    ??? * 方法名稱:addElement<p>
    ??? * 方法功能:在parent下增加tagName的Text結點,且值為text<p>
    ??? * 參數說明:@param parent
    ??? * 參數說明:@param tagName
    ??? * 參數說明:@param text <p>
    ??? * 返回:void <p>
    ??? * 作者:luoc
    ??? * 日期:2005-6-22
    ??? **/
    ??? public static void addElement(Element parent,String tagName,String text)
    ??? {
    ??????? Document doc=parent.getOwnerDocument();
    ??????? Element child=doc.createElement(tagName);
    ??????? setElementValue(child,text);
    ??????? parent.appendChild(child);
    ??? }
    ???
    ??? /**
    ??? * 方法名稱:removeElement<p>
    ??? * 方法功能:將父結點parent下的名稱為tagName的結點移除<p>
    ??? * 參數說明:@param parent
    ??? * 參數說明:@param tagName <p>
    ??? * 返回:void <p>
    ??? * 作者:luoc
    ??? * 日期:2005-6-22
    ??? **/
    ??? public static void removeElement(Element parent,String tagName)
    ??? {
    ??????? logger.debug("remove "+parent.getNodeName()+"'s children by tagName "+tagName+" begin...");
    ??????? NodeList nl=parent.getChildNodes();
    ??????? for(int i=0;i<nl.getLength();i++)
    ??????? {
    ??????????? Node nd=nl.item(i);
    ??????????? if(nd.getNodeName().equals(tagName))
    ??????????? {
    ??????????????? parent.removeChild(nd);
    ??????????????? logger.debug("remove child '"+nd+"' success.");
    ??????????? }
    ??????? }
    ??????? logger.debug("remove "+parent.getNodeName()+"'s children by tagName "+tagName+" end.");
    ??? }
    ???
    ???
    ??? /*全局變量*/???
    ??? static Logger logger=Logger.getLogger("XmlOper");
    }

    posted on 2006-12-05 23:44 小鋒 閱讀(1018) 評論(0)  編輯  收藏 所屬分類: J2EE

    主站蜘蛛池模板: 国产精品亚洲精品日韩电影| 久久亚洲国产成人影院| 成人午夜免费视频| 四虎永久免费影院在线| 337p日本欧洲亚洲大胆人人| 国产大片线上免费看| 免费国产黄网站在线看| 亚洲熟伦熟女新五十路熟妇| 一区二区在线视频免费观看| 亚洲宅男天堂在线观看无病毒| 97在线免费观看视频| 亚洲va无码手机在线电影| 最近2019免费中文字幕视频三| 亚洲国产精品成人综合久久久| 成人毛片免费在线观看| 美女被艹免费视频| 亚洲爆乳无码专区| 99久久精品日本一区二区免费 | 国产亚洲精品国产福利在线观看| 国产免费小视频在线观看| 日韩精品视频在线观看免费| 亚洲综合国产一区二区三区| 日本视频在线观看永久免费| 亚洲成人在线免费观看| 免费网站看v片在线香蕉| 国产成人无码精品久久久免费| 久久亚洲精品成人777大小说| 免费A级毛片无码无遮挡内射| 亚洲国产成人久久精品大牛影视| 国产美女亚洲精品久久久综合| 日韩免费人妻AV无码专区蜜桃| 亚洲欧美日本韩国| 国产亚洲一区二区三区在线不卡 | 日韩在线视频播放免费视频完整版| 曰韩亚洲av人人夜夜澡人人爽| 99re免费在线视频| 国产偷国产偷亚洲高清人| 亚洲AV无一区二区三区久久| 女人张腿给男人桶视频免费版| 中文字幕免费在线观看动作大片| 亚洲国产成人在线视频|