<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 小鋒 閱讀(1030) 評論(0)  編輯  收藏 所屬分類: J2EE

    主站蜘蛛池模板: 色天使亚洲综合一区二区| 成人毛片免费观看| 午夜在线亚洲男人午在线| 亚洲视频免费播放| 亚洲精品无码不卡在线播放HE| 国产黄色片在线免费观看| 成人免费视频69| 久久青草精品38国产免费| 久久国产一片免费观看| 在线播放亚洲精品| 亚洲熟女www一区二区三区| 亚洲精品中文字幕无乱码| 国产亚洲一区二区三区在线观看| xvideos亚洲永久网址| 国内大片在线免费看| 美女被cao免费看在线看网站| 无码国产精品一区二区免费3p| 国产裸体美女永久免费无遮挡| 鲁啊鲁在线视频免费播放| 国产亚洲精品成人久久网站| 亚洲日韩精品A∨片无码加勒比| 亚洲一区二区三区播放在线| 亚洲无删减国产精品一区| 图图资源网亚洲综合网站| 亚洲国产一成人久久精品| 黑人大战亚洲人精品一区| 国产91精品一区二区麻豆亚洲| 亚洲国产精品成人一区| 免费成人在线观看| 亚洲精品成人区在线观看| 亚洲国产午夜中文字幕精品黄网站| 国产精品免费综合一区视频| 国产成人精品高清免费| 国产成人在线观看免费网站| 国产三级免费电影| 亚洲AⅤ永久无码精品AA| 亚洲午夜无码AV毛片久久| 中文字幕亚洲图片| 亚洲av无码国产精品色午夜字幕| 久久精品亚洲中文字幕无码网站 | 亚洲精品美女在线观看|