如何使用Jsoup从html中提取指定长度的纯文本?
我使用jsoup-1.5.2解析html标签字符串,我想从html字符串中提取纯文本并指定文本的长度,并保持完整的html标签。
例如:
html代码:
<p><span>Mike <u>stopp<b>ed</b></u> his work</span></p>
我想要结果:
指定文本长度=4
result:<p><span>Mike</span></p>
指定文本长度=10
result:<p><span>Mike <u>stopp</u></span></p>
指定文本长度=12
result:<p><span>Mike <u>stopp<b>ed</b></u></span></p>
指定文本长度=16
result:<p><span>Mike <u>stopp<b>ed</b></u> his</span></p>
等等。
我可以使用jsoup完成它吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不幸的是,使用 Element 类并不简单。原因是 Element 类中的“text()”方法“获取此元素及其所有子元素的组合文本”。这真的很烦人,因为你不能只获取单个元素的文本。您需要使用 Elements 类,也许使用通配符(如果可能的话)。此方法将返回所有匹配节点的“组合”文本。它作为单个字符串返回,因此您可以对其调用 String 的“
length()
”方法。It's not straightforward using the Element class unfortunately. The reason being that the 'text()' method within class Element, "Gets the combined text of this element and all its children". This is really irritating as you can't just get the text of a single element. You will need to use the
Elements.select(String).text()
method from the Elements class and perhaps use a wildcard (if possible). This method will return the 'combined' text of all matching nodes. This is returned as a single string so you can then call String's 'length()
' method on it.