數據加載中……
          采用org.w3c.dom進行XML操作,包括查找、新增、刪除、修改結點

          /**
          * 類名XmlOperate<p>
          * 編寫者 :java_god<p>
          **/

          public class XmlOperate
          {

             
              /**
              * 方法名稱: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 2008-02-24 14:30 java flex 結合 閱讀(1199) 評論(0)  編輯  收藏 所屬分類: xml

          主站蜘蛛池模板: 孟州市| 阿拉善左旗| 西平县| 沙洋县| 抚顺县| 肥西县| 太康县| 兴文县| 阿尔山市| 桓仁| 青冈县| 佛坪县| 上饶县| 隆安县| 通城县| 娄烦县| 浦东新区| 临沭县| 河源市| 永年县| 陈巴尔虎旗| 西峡县| 潢川县| 南乐县| 浦江县| 寿阳县| 高雄县| 海晏县| 大竹县| 邵武市| 建平县| 彰化县| 新安县| 扎鲁特旗| 平安县| 伊金霍洛旗| 民权县| 江门市| 偏关县| 方正县| 浦北县|