gpt4 book ai didi

java - 如何使用 Java HTMLParser (org.htmlparser) 替换链接的 URL

转载 作者:行者123 更新时间:2023-11-28 00:31:04 24 4
gpt4 key购买 nike

我正在使用 htmlparser (htmlparser.org) 重写输入字符串中的所有链接。

我需要做的就是遍历出现在输入字符串中的所有链接标签 (<a href=...),获取它们的值,执行一些正则表达式以确定应该如何操作它们,然后更新链接的 href, target 和 onclick 相应的值。

我不确定如何才能只更新输入字符串中的选择链接元素,而不影响输入字符串中的所有其他数据。

看起来 htmlparser 库可以提取某些元素进行操作,但它不能在原始上下文中操作元素,然后返回它们的更新值将保持原始上下文的完整性。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

这是一个非常简单的示例,但向您展示了如何设置节点迭代器。

    public static String setExternalLinkTargets(String html) {
final NodeVisitor linkVisitor = new NodeVisitor() {

@Override
public void visitTag(Tag tag) {
// Process any tag/node in your HTML
String name = tag.getTagName();

// Set the Link's target to _blank if the href is external
if ("a".equalsIgnoreCase(name)) {
if(isExternalLink(url.getHost()) {
tag.setAttribute("target", "_blank");
}
}
}
};

Parser parser = Parser.createParser(html, null);
NodeList list;
try {
list = parser.parse(null);
list.visitAllNodesWith(linkVisitor);
return list.toHtml();
} catch (ParserException e) {
// Could not parse HTML, return original HTML
return html;
}
}

关于java - 如何使用 Java HTMLParser (org.htmlparser) 替换链接的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1089517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com