【问题标题】:How to get text from this html tag by using jsoup?如何使用 jsoup 从此 html 标记中获取文本?
【发布时间】:2013-04-03 11:53:48
【问题描述】:

我在使用 jsoup 提取数据时遇到了一个职位。数据如下:

This is a <strong>strong</strong> number <date>2013</date>

我想得到这样的数据:This is a number

我该怎么做?谁能帮帮我?

【问题讨论】:

    标签: java html jsoup


    【解决方案1】:

    这应该回答你的问题:

    public String escapeHtml(String source) {
        Document doc = Jsoup.parseBodyFragment(source);
        Elements elements = doc.select("b");
        for (Element element : elements) {
            element.replaceWith(new TextNode(element.toString(),""));
        }
        return Jsoup.clean(doc.body().toString(), new Whitelist().addTags("a").addAttributes("a", "href", "name", "rel", "target"));
    }
    

    Jsoup - Howto clean html by escaping not deleting the unwanted html?

    【讨论】:

      【解决方案2】:

      您可以将 html 解析为 Document,选择 body-Element 并获取其文本。

      示例:

      Document doc = Jsoup.parse("This is a <strong>strong</strong> number <date>2013</date>");
      
      String ownText = doc.body().ownText();
      String text = doc.body().text();
      
      System.out.println(ownText);
      System.out.println(text);
      

      输出:

      This is a number  
      This is a strong number 2013
      

      【讨论】:

      • 有没有办法将“这是一个”、“数字”作为单独的文本(不合并)?
      • 您可能可以通过遍历底层节点来拆分它。
      【解决方案3】:
      Document doc = Jsoup.parse("This is a <strong>strong</strong> number <date>2013</date>");
      
      Spanned HtmlDoc = Html.fromHtml(doc.toString());
      String fromHTML = HtmlDoc.toString();
      
      System.out.println(fromHTML);
      

      【讨论】:

        猜你喜欢
        • 2012-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多