有如下代码 <li class="B_dell-property    " >
<label>笔记本:</label>
  </li>
正常写法是 
NodeFilter filter=new AndFilter(new NodeFilter[]{new TagNameFilter("li"),
new HasAttributeFilter("class","B_dell-property    ")});
NodeList nodeList = parser.parse(filter);
因为B_dell-property这后面带了空格,导致我设置的时候要带空格,有没有什么办法,我想根据class读到这个li,但是可以不管空格
比如
NodeFilter filter=new AndFilter(new NodeFilter[]{new TagNameFilter("li"),
new HasAttributeFilter("class","B_dell-property")});
请高手解决

解决方案 »

  1.   

    直接处理是不行的,没有通配符,不过你可以将它的源代码下载下来,进行小小的修改,而不是直接引用他发布的jar文件,修改完好你也可以重新打成jar替换掉原来下载下来的官方的jar包。
    在源代码的HasAttributeFilter类中,有这样一段代码:
     public boolean accept (Node node)
        {
            Tag tag;
            Attribute attribute;
            boolean ret;        ret = false;
            if (node instanceof Tag)
            {
                tag = (Tag)node;
                attribute = tag.getAttributeEx (mAttribute);
                ret = null != attribute;
                if (ret && (null != mValue))
                    ret = mValue.equals (attribute.getValue ());
            }        return (ret);
        }你只许要在这里做一点点修改就可以了:ret = mValue.equals (attribute.getValue ().trim());
    这样就可以了,相信说到这里应该知道如何做了吧!
      

  2.   

    谢谢 lovebaylong
    可以把你编译好的,java包发到 谢谢,我这里下载不到源代码
      

  3.   

    我不知道你现在使用的是什么版本的,不过我将当前最新版本的发到你邮箱,应该差不多,如果不行就只替换掉这一个类就可以了。
    我把它的下载地址也贴一下吧,你可以下源码与文档都可以。
    http://sourceforge.net/projects/htmlparser/files/