如何用JSoup提取HTML中<p>标签内的指定文本内容?
使用JSoup提取
标签内的目标文本
直接用JSoup的选择器和文本提取方法就能搞定,核心是精准定位
标签并排除子元素的干扰:
步骤与代码示例
import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class ParserDemo { public static void main(String[] args) { // 你的HTML内容 String html = "<p>\n" + "<strong>Popular resonses: </strong>\n" + "bat, butterfly, moth\n" + "</p>"; // 解析HTML文档 Document doc = Jsoup.parse(html); // 筛选包含<strong>子元素的<p>标签(适配多<p>场景,精准定位目标标签) Elements targetParagraphs = doc.select("p:has(strong)"); for (Element p : targetParagraphs) { // 提取<p>自身的文本(排除子元素<strong>的内容),并清理空白字符 String result = p.ownText().trim(); System.out.println(result); // 输出:bat, butterfly, moth } } }
关键方法说明
select("p:has(strong)"):通过伪选择器has()筛选出包含<strong>子元素的<p>,避免匹配到无关的<p>标签。ownText():仅返回当前元素的直接文本内容,不会包含子元素的文本,完美跳过<strong>里的"Popular resonses: "。trim():清除文本前后的换行、空格等多余空白,得到整洁的目标内容。
内容的提问来源于stack exchange,提问作者silenzzz
相关产品推荐
相关产品推荐

