2012-02-23 5 views
0

Так что я просто тестирую API Jsoup и задаю простой вопрос. У меня есть строка и хотелось бы держать строку в такте, кроме тех случаев, когда она прошла через мой метод. Я хочу, чтобы строка проходила через этот метод и вынимала элементы, которые обертывают ссылки. Сейчас у меня есть:Jsoup выбирает и заменяет несколько элементов <a>

public class jsTesting { 
public static void main(String[] args) { 
    String html = "<p>An <a href='http://example.com/'><b>example</b></a> link and after that is a second link called <a href='http://example2.com/'><b>example2</b></a></p>"; 
    Elements select = Jsoup.parse(html).select("a"); 
    String linkHref = select.attr("href"); 
    System.out.println(linkHref);  
}} 

Это возвращает первый URL-адрес, который не был взломан. Я хотел бы, чтобы все URL-файлы были развернуты, а также исходная строка. Заранее спасибо

EDIT: РЕШЕНИЕ:

Большое спасибо за ответ, и я редактировал его лишь немного, чтобы получить результаты, которые я хотел. Вот решение в полном объеме, что я использую:

public class jsTesting { 
public static void main(String[] args) { 
    String html = "<p>An <a href='http://example.com/'><b>example</b></a> link and after that is a second link called <a href='http://example2.com/'><b>example2</b></a></p>"; 
    Document doc = Jsoup.parse(html); 
    Elements links = doc.select("a[href]"); 
    for (Element link : links) { 
     doc.select("a").unwrap(); 
    } 
    System.out.println(doc.text()); 
} 

}

Еще раз спасибо

ответ

3

Вот исправленный код:

public class jsTesting { 
    public static void main(String[] args) { 
     String html = "<p>An <a href='http://example.com/'><b>example</b></a> link and after that is a second link called <a href='http://example2.com/'><b>example2</b></a></p>"; 
     Elements links = Jsoup.parse(html).select("a[href]"); // a with href; 
     for (Element link : links) { 
      //Do whatever you want here 
      System.out.println("Link Attr : " + link.attr("abs:href")); 
      System.out.println("Link Text : " + link.text());  
     }  
    } 
} 
+0

Вместо 'link.attr (" абс: href ")' вам лучше использовать 'link.absUrl (" href ")'. – BalusC

+0

Спасибо большое, оцените его. Однако нет ли способа сделать это с помощью метода unwrap()? –