如何从java中的html标签中删除属性

时间:2011-03-18 08:47:39

标签: java html

我想从锚标记中删除特定属性:

<a  id="nav-askquestion" style="cursor:default" href="/questions">

输出: -

<a   href="/questions">

通过java程序

3 个答案:

答案 0 :(得分:4)

我们使用htmlparser来完成这类工作

您可以使用此未经测试的snipplet解析和修改节点:

NodeVisitor visitor = new NodeVisitor() {
    public void visitTag(Tag tag) {
            tag.removeAttribute("id");
            tag.removeAttribute("style");
    }

};

Parser parser = new Parser(...);
parser.visitAllNodesWith(visitor);

答案 1 :(得分:2)

这个小片段可以解决问题。

问我是否需要关于正则表达式的一些问题


public class test {

    public static void main(String[] args) {
        String htmlFragment ="<a  id=\"nav-askquestion\" style=\"cursor:default\" href=\"/questions\">";
        String attributesToRemove = "id|style";

        System.out.println(htmlFragment);
        System.out.println(cleanHtmlFragment(htmlFragment, attributesToRemove));
    }

    private static String cleanHtmlFragment(String htmlFragment, String attributesToRemove) {
        return htmlFragment.replaceAll("\\s+(?:" + attributesToRemove + ")\\s*=\\s*\"[^\"]*\"","");    
    }
}

答案 2 :(得分:-1)

人们可能会建议使用正则表达式,但是beware,您可以使用XML解析器。