注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

无线时代辐射无穷

抓紧生宝宝,小心辐射

 
 
 

日志

 
 

htmlparser中删除节点的例子  

2009-12-03 12:42:48|  分类: htmlparser |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

htmlparser本身不提供removeNode函数,因此需要采用获取全部子节点,然后删除其中的节点,再设置子节点的方式进行操作,代码如下:

 /**
  * @date 2009-7-1
  * @author Administrator
  * @see 方法描述:判断某个节点是否包含给定属性和值的给定节点名
  * @see 参数描述:
  * @param nodeP
  * @param tagName 节点名称
  * @param attributeName 属性名
  * @param attributeValue 属性值
  * @return
  */
 public static boolean removeTagByTagNameAttributeNameAndValue(Node nodeP, String tagName, String attributeName, String attributeValue)
 {
  if (nodeP instanceof TagNode)
  {
   TagNode tagNode = (TagNode) nodeP;
   if (equalsIgnoreCase(tagNode.getTagName(), tagName))
   {
    Vector vector = tagNode.getAttributesEx();
    for (int i = 1; i < vector.size(); i++)
    {
     Attribute attribute = (Attribute) vector.elementAt(i);
     if (equalsIgnoreCase(attribute.getName(), attributeName))
     {
      if (equalsIgnoreCase(attribute.getValue(), attributeValue))
      {
       return true;
      }
     }
    }
   }
  }
  NodeList nodeList = nodeP.getChildren();
  if ((nodeList != null) && (nodeList.size() > 0))
  {
   for (int i = 0; i < nodeList.size(); i++)
   {
    Node node = nodeList.elementAt(i);
    if (node != null)
    {
     boolean bl = removeTagByTagNameAttributeNameAndValue(node, tagName, attributeName, attributeValue);
     if (bl)
     {
      nodeList.remove(node);
      nodeP.setChildren(nodeList);
     }
    }
   }
  }
  return false;
 }

 /**
  * @date 2009-12-3
  * @author Administrator
  * @see 方法描述:判断str1与str2是否相等,其中需要考虑到标签属性值中的单引号与双引号问题
  * @see 参数描述:
  * @param str1
  * @param str2
  * @return
  */
 public static boolean equalsIgnoreCase(String str1, String str2){
  if(str1==null||str2==null)
   return false;
  str1=getRidOfSingleQuote(str1);
  str2=getRidOfSingleQuote(str2);
  return str1.equalsIgnoreCase(str2);
 }

 public static String getRidOfSingleQuote(String str)
 {
  if (str == null)
   return "";
  if (str.startsWith("'") && str.endsWith("'"))
  {
   str = str.substring(1, str.length() - 1);
  }
  return str;
 }

  评论这张
 
阅读(2074)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017