【问题标题】:How to get text which is not part of any element using jsoup?如何使用jsoup获取不属于任何元素的文本?
【发布时间】:2015-05-28 20:25:37
【问题描述】:

如何获取不属于任何元素的文本?

<br><b>Price:</b> &nbsp; Rs. 24,900.00 &nbsp; <br>

这里,如何获取文本Rs.24,900.00。这可以使用 jsoup 吗?

【问题讨论】:

标签: java parsing html-parsing jsoup


【解决方案1】:

我想有一个父元素,所以你应该先选择它,然后像下面的代码一样选择“b”。基本上只需找到文本前面的元素即可。

Document doc = Jsoup.parse( "<br><b>Price:</b> &nbsp; Rs. 24,900.00 &nbsp; <br>");
Element el = doc.select("b").first();
String text = ((TextNode) el.nextSibling()).text();

我第一次使用是因为我从您的示例中知道只有一个“b”元素。如果您有多个价格,则必须迭代所有元素而不是首先使用。

Jsoup 将文本存储为节点。因此 nextSibling 将返回一个节点 (TextNode),该节点位于“b”元素之后并包含文本值:“Rs. 24,900.00  ”

【讨论】:

  • 糟糕!我收到一个错误:无法将 TextNode 解析为类型。
  • 导入 org.jsoup.nodes.*;
  • 谢谢!有效。但是为什么我们需要 first() 呢?而 nextSibling 的意思是 &nbsp 对吗?
  • @nikhil 将在回答中添加解释
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 1970-01-01
  • 2019-09-02
相关资源
最近更新 更多