java - 如何使用 htmlParser 替换属性?

标签 java html parsing

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

我需要做的就是遍历输入字符串中出现的所有链接标签,获取它们的值,然后在不影响链接文本的情况下替换为不同的链接

我是 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="">到标签中的另一个链接。

最佳答案

如果您使用 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());

这只是一种方法。

关于java - 如何使用 htmlParser 替换属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1694515/

相关文章:

javascript - 添加 :hover pseudo-class via js/jquery

c# - TimeSpan.Parse 错误

java - 如何创建一个动态扩展的数组数组?

android - 在iPhone,BlackBerry和Android网站上使用声音

java - 我在 android studio 中看到灰色代码。格雷码是什么意思?

javascript - 在另一个div上显示溢出的文本部分

json - 快速解析JSON文件

php - 简单的 html dom 抓取大型 html 文件

java - 你能强制一个 java 对象在运行时实现一个接口(interface)吗?

java - pojo 类的 Mockito 测试用例