如何使用htmlParser替换属性?

时间:2009-11-07 21:38:47

标签: java html parsing

更新:嗨Pascal,感谢您的快速回复,这几乎是我想要的。每个标签的新链接都不同,请你帮我做一下。

我需要做的就是遍历输入String中出现的所有链接标记,获取它们的值,并用不同的链接替换而不会干扰链接文本

我是新用的Java中的htmlParser,请帮我解决这个问题。

htmlString =  <a class="user" href="">first name</a> posted on <a class="user" href="">Test Test</a>'s wiki entry, <a href="http://localhost:8080/b/lll/ddd">werwrwrwerwerwer</a>, in 

我需要将href中的<a class="user" href="">链接替换为代码中的其他链接。

1 个答案:

答案 0 :(得分:4)

如果您使用htmlparser作为HTML解析器,则可以使用visitors进行一些转换。

例如,您可以创建自己的NodeVisitor来访问a代码:

public class MyLinkVisitor extends NodeVisitor {

    public MyLinkVisitor() { }

    public void visitTag(Tag tag) {
        if (tag.getTagName().equals("A")) {
            LinkTag link = (LinkTag) tag;
            link.setLink("http://newLink/"); //implement your logic here
        }
    }
}

然后,创建一个Parser,解析HTML字符串并访问返回的节点列表:

Parser parser = new Parser(htmlString);
NodeList nl = parser.parse(null);
nl.visitAllNodesWith(new MyLinkVisitor());
System.out.println(nl.toHtml());

这只是一种方法。

相关问题