【问题标题】:Parsing html body outer text only仅解析 html 正文外部文本
【发布时间】:2018-10-26 05:21:59
【问题描述】:

我使用 JSoup 来解析 HTML。 我怎样才能得到正文? 我的意思是我只想要外部文本而不包含其他标签的文本。

(音乐使我们能够雄辩地思考。)

<html>
    <body>
        <p class=\"mm3h\">ဂီတကဆွဲဆောင်အားကောင်းတဲ့ကျွန်တော်တို့ကိုဖြစ်စေတယ်လို့ထင်တယ်။</p> 
        Music causes us to think eloquently.
        <a class=\"\" href=\"\" aria-label=\"--Ralph Waldo Emerson (1 item)\">--Ralph Waldo Emerson</a>
    </body>
<html>

【问题讨论】:

    标签: java jsoup html-parsing


    【解决方案1】:
    Document doc = Jsoup.parse("<body> your content </body>");
    String body = doc.body().textNodes().get(1).text();
    

    【讨论】:

    • 感谢您的回答。但是我已经尝试过使用此代码。这个 doc.body().text() 解析body标签之间的所有文本。我只想获取外部文本。 @RichardK
    • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
    • @Mthk 我已经更新了我的答案。现在它就是你要找的东西。
    • @RichardK 谢谢。我得到了它。但正确的答案是 doc.body().textNodes().get(0).text(); .
    【解决方案2】:

    我知道该问题已得到回答,并且该答案被标记为已接受的答案,但我认为还有另一种方法可以得到所问的内容:

    JSoup 提供ownText() 方法。这样,您可以获得元素的所有直接子元素的文本节点。不会返回子元素及其文本节点。

    Document doc = Jsoup.parse("<body> text <p> not included </p> included </body>");
    Element body = doc.body();
    String ownText = body.ownText();
    

    【讨论】:

      猜你喜欢
      • 2016-05-28
      • 2014-04-21
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 2019-03-02
      • 2020-11-27
      • 2019-03-01
      • 1970-01-01
      相关资源
      最近更新 更多