Jsoup выбор и замена нескольких <a>элементов - PullRequest
0 голосов
/ 23 февраля 2012

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

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 были развернуты, а также исходная строка. Заранее спасибо

РЕДАКТИРОВАТЬ: РЕШЕНИЕ:

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

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());
}

}

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

1 Ответ

3 голосов
/ 23 февраля 2012

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

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());    
        }       
    }
}
...