我正在寻找一个可以搜索和替换
等锚标签的html解析器ex
<a href="/ima/index.php">example</a>
to
<a href="http://www.example.com/ima/index.php">example</a>
更新:
我的代码与jsoup但没有工作
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import com.google.common.collect.ImmutableList;
import com.google.common.net.InternetDomainName;
public class test {
public static void main(String args[]) throws IOException {
Document doc = Jsoup.connect("http://www.google.com").get();
String html =doc.outerHtml().toString();
// System.out.println(html);
Elements links = doc.select("a");
for (Element link : links) {
String href=link.attr("href");
if(href.startsWith("http://"))
{
}
else
{
html.replaceAll(href,"http://www.google.com"+href);
}
}
System.out.println(html);
}
}
答案 0 :(得分:5)
此代码将文档中的相对链接更改为代码使用jsoup库的绝对链接
private void absoluteLinks(Document document, String baseUri) {
Elements links = document.select("a[href]");
for (Element link : links) {
if (!link.attr("href").toLowerCase().startsWith("http://")) {
link.attr("href", baseUri+link.attr("href"));
}
}
}
答案 1 :(得分:2)
package javaapplication4;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
/**
*
* @author derek
*/
public class Main
{
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
try
{
Document document = Jsoup.connect("http://www.google.com").get();
Elements elements = document.select("a");
for (Element element : elements)
{
element.baseUri();
}
System.out.println(document);
}
catch (Exception e)
{
e.printStackTrace(System.err);
}
}
}
答案 2 :(得分:1)
您可以使用String.replaceAll()和匹配
的正则表达式执行此操作<a href="/
找到所有相关链接。
html = html.replaceAll("<a href=\"/", "<a href=\"http://www.google.com/\"");
答案 3 :(得分:0)
这是一个编程问题吗?如果您正在寻找预先制作的Java文件或其他类似的东西,那么您就错了。如果你想写这样的东西,那么你可以只搜索以a href=/"
开头并以/">
结尾的文本实例,然后你可以检查href值,如果它是相对路径(即以/
开头),您可以将其他文本添加到开头。