Java j组选择和替换多个<;a>;元素

Java j组选择和替换多个<;a>;元素,java,parsing,jsoup,Java,Parsing,Jsoup,所以我只是在尝试JSoupAPI,有一个简单的问题。我有一个字符串,并希望保持字符串的圆滑,除非通过我的方法传递。我希望字符串通过此方法并取出包装链接的元素。现在我有: public class jsTesting { public static void main(String[] args) { String html = "<p>An <a href='http://example.com/'><b>example</b></a

所以我只是在尝试JSoupAPI,有一个简单的问题。我有一个字符串,并希望保持字符串的圆滑,除非通过我的方法传递。我希望字符串通过此方法并取出包装链接的元素。现在我有:

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);       
}}
公共类测试{
公共静态void main(字符串[]args){
String html=“一个链接,然后是第二个名为

”的链接; Elements select=Jsoup.parse(html).select(“a”); 字符串linkHref=select.attr(“href”); System.out.println(linkHref); }}
这将仅返回第一个展开的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());
}
公共类测试{
公共静态void main(字符串[]args){
String html=“一个链接,然后是第二个名为

”的链接; Document doc=Jsoup.parse(html); Elements links=doc.select(“a[href]”); 用于(元素链接:链接){ 文件选择(“a”).unwrap(); } System.out.println(doc.text()); }
}


再次感谢

以下是更正的代码:

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());    
        }       
    }
}
公共类测试{
公共静态void main(字符串[]args){
String html=“一个链接,然后是第二个名为

”的链接; Elements links=Jsoup.parse(html)。选择(“a[href]”;//a with href; 用于(元素链接:链接){ //在这里你想干什么就干什么 System.out.println(“Link Attr:”+Link.Attr(“abs:href”); System.out.println(“链接文本:+Link.Text()); } } }
以下是更正后的代码:

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());    
        }       
    }
}
公共类测试{
公共静态void main(字符串[]args){
String html=“一个链接,然后是第二个名为

”的链接; Elements links=Jsoup.parse(html)。选择(“a[href]”;//a with href; 用于(元素链接:链接){ //在这里你想干什么就干什么 System.out.println(“Link Attr:”+Link.Attr(“abs:href”); System.out.println(“链接文本:+Link.Text()); } } }
而不是
link.attr(“abs:href”)
您最好使用
link.absUrl(“href”)
。非常感谢,非常感谢。但是,使用unwrap()方法难道没有办法做到这一点吗?与其使用
link.attr(“abs:href”)
,不如使用
link.absUrl(“href”)
。非常感谢,非常感谢。但是,使用unwrap()方法难道没有办法做到这一点吗?