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

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

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

    捕風之巢

    統計

    留言簿(3)

    java友情鏈接

    閱讀排行榜

    評論排行榜

    采用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 2007-03-22 14:56 捕風 閱讀(654) 評論(1)  編輯  收藏 所屬分類: xml應用

    評論

    # re: 采用org.w3c.dom進行XML操作(二)(轉載) 2009-04-14 15:20 -

    沒用的東本  回復  更多評論   

    主站蜘蛛池模板: 精品韩国亚洲av无码不卡区| 亚洲欧洲综合在线| 亚洲精品国产首次亮相| 国产无人区码卡二卡三卡免费| 亚洲成a人片7777| 久视频精品免费观看99| 久久精品国产亚洲AV无码麻豆 | 欧美亚洲精品一区二区| 成年女人免费视频播放体验区| 亚洲va在线va天堂成人| 女人18毛片水真多免费看| 亚洲AV无码国产剧情| 亚洲国产一区视频| 久久精品成人免费国产片小草| 亚洲精品国精品久久99热一| 久久久久久国产精品免费免费男同| 99人中文字幕亚洲区| 成年女人毛片免费播放人| 黄色一级视频免费| 亚洲av伊人久久综合密臀性色 | 日韩欧美一区二区三区免费观看| 波多野结衣亚洲一级| 四虎永久成人免费影院域名| 亚洲免费在线观看| 久久久久亚洲精品无码蜜桃| 三年片在线观看免费大全| 美女视频黄a视频全免费网站色| 久久久久久亚洲精品不卡| 最近中文字幕完整免费视频ww| 亚洲精品中文字幕无码A片老| 国产精品亚洲玖玖玖在线观看| 免费91麻豆精品国产自产在线观看 | 一本无码人妻在中文字幕免费| 亚洲最大的成人网| 亚洲高清偷拍一区二区三区| 精品视频一区二区三区免费| 亚洲国产理论片在线播放| 国产yw855.c免费视频| 久久国产精品免费视频| 亚洲国产精品成人AV在线 | 99久久亚洲综合精品成人网|