<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文件進行讀寫操作,均為靜態函數 <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 小鋒 閱讀(1019) 評論(0)  編輯  收藏 所屬分類: J2EE

    主站蜘蛛池模板: 国产亚洲视频在线观看网址| 亚洲久悠悠色悠在线播放| 免费人人潮人人爽一区二区| 成人毛片视频免费网站观看| 亚洲日本人成中文字幕| 性生交片免费无码看人| 亚洲熟妇无码一区二区三区| 搡女人免费视频大全| 亚洲爆乳AAA无码专区| jjzz亚洲亚洲女人| 美女无遮挡拍拍拍免费视频| 国产亚洲欧洲精品| 亚洲精品视频在线观看免费| 亚洲中文字幕无码一去台湾 | 亚洲一区二区三区精品视频| 成年美女黄网站18禁免费| 亚洲国产精品自在自线观看| 俄罗斯极品美女毛片免费播放| 产传媒61国产免费| 日本亚洲视频在线| 成人在线免费看片| mm1313亚洲国产精品无码试看 | 99久久99久久免费精品小说| 亚洲天堂中文字幕在线观看| 色吊丝永久在线观看最新免费| 猫咪免费观看人成网站在线| 亚洲人成网7777777国产| 91禁漫免费进入| 久久亚洲中文无码咪咪爱| 亚洲日韩国产精品乱| 精品无码国产污污污免费网站 | 国产免费拔擦拔擦8x| 在线观看黄片免费入口不卡| 亚洲性一级理论片在线观看| 日本不卡在线观看免费v| 中国好声音第二季免费播放| 亚洲三级在线视频| 国产成人综合亚洲AV第一页 | 亚洲成年人在线观看| 高清国语自产拍免费视频国产 | 亚洲国产欧美国产综合一区 |