【问题标题】:Get text after after html tag using Jsoup and display the results使用Jsoup在html标签之后获取文本并显示结果
【发布时间】:2014-07-03 09:10:59
【问题描述】:

我正在尝试从 HTML 文档中获取文本

<p>
   <b>1</b>First Text
   <b>2</b><br>Second Text
   <b>3</b>Third Text
   .
   .
   .
   .
</p>

第 3 行是卡住的地方

尝试使用以下代码,但出现错误。

Elements elements = doc.body().select("p").select("b");
    for(int i=0; i<elements.size(); i++)
{
        Element val = elements.get(i);

    if ((val.nextSibling().toString().trim()).equals(""))
        System.out.println(val.nextSibling().toString().select("br").first().text()+"\n");
    else
        System.out.println(val.nextSibling().toString()+"\n");

    }

【问题讨论】:

    标签: java html html-parsing jsoup


    【解决方案1】:

    问题不清楚,但似乎(从标题)您只想要&lt;br&gt; 之后的&lt;b&gt; 之外的文本。为此,您可以使用ownText():

    Elements elements = doc.select("p");
    for(Element p: elements) {
        System.out.println(p.ownText()); // Prints text that is in <p> but not in <b>
    }
    

    【讨论】:

    • 您好凤凰,感谢您的回答。抱歉有一个不清楚的问题。我希望将 标记中的每个元素和附近的文本存储在二维数组中。但是我的代码 sn-p 的问题在于它遇到
      未闭合的标签。发生了错误。但我昨天找到了解决方案。捕获了异常并使用了 .nextSibling().nextSibling() ,我的工作就完成了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 2016-08-15
    • 1970-01-01
    相关资源
    最近更新 更多