Jsoup的选择返回集而不是数组

时间:2015-08-24 22:40:28

标签: java select jsoup

我需要按类选择所有元素。但是select只返回唯一元素。 例如,我有两个相同的元素1,我想获得两个元素并更改它们。但只改变第一个元素。 如何获取元素数组而不是设置?

详细示例:

String str = "<span class="episode-number">1</span><span class="episode-number">1</span>";
Elements el = Jsoup.parse(str);
for(Element e: el.select(".episode-number")
    e.wrap("<b></b>");

此代码段将str转换为

"<b><span class="episode-number">1</span></b>
<span class="episode-number">1</span>"

相反

"<b><span class="episode-number">1</span></b> 
<b><span class="episode-number">1</span></b>"

1 个答案:

答案 0 :(得分:1)

您的示例无法编译。

  1. 这是错误的,因为类的双引号不会被转义。
  2. String str = "<span class="episode-number">1</span><span class="episode-number">1</span>";

    1. 这是错误的,因为Jsoup.parse会返回Document个对象。
    2. Elements el = Jsoup.parse(str);

      1. for循环中缺少一个括号。
      2. 以下按预期工作

        String str = "<span class=\"episode-number\">1</span><span class=\"episode-number\">1</span>";
        Document doc = Jsoup.parse(str);
        for(Element e: doc.select(".episode-number"))
            e.wrap("<b></b>");
        
        System.out.println(doc);
        

        <强>输出继电器

        <html>
         <head></head>
         <body>
          <b><span class="episode-number">1</span></b>
          <b><span class="episode-number">1</span></b>
         </body>
        </html>