【发布时间】:2011-11-09 13:02:24
【问题描述】:
使用 Jsoup,提取文本的最佳方法是什么,其模式是已知的 ([number]%%[number]),但驻留在既不使用 CSS 也不使用 div、span、类或其他任何类型标识的 HTML 页面中 (是的,我无法控制的旧 HTML 页面?
唯一能始终如一地标识该文本段(并且保证保持这种状态)的是 HTML 总是看起来像这样(在更大的 HTML 正文中):
<hr>
2%%17
<hr>
(数字 2 和 17 仅作为示例。它们可以是任何数字,事实上,这是我需要从该 HTML 页面可靠提取的两个变量)。
如果该文本位于封闭且唯一标识<span> 或<div> 中,则使用Jsoup 提取它没有问题。问题是情况并非如此,我现在能想到的唯一方法(这 一点也不 优雅)是通过一个处理 raw HTML正则表达式。
通过正则表达式处理原始 HTML 似乎效率低下,因为我已经通过 Jsoup 将其解析为 DOM。
建议?
【问题讨论】:
-
你试过调试jsoup元素看看有没有元素吗?
-
@ariel 是的,元素在那里,但它们不是“封闭元素”,所以我不能真正使用
element.text()来获得令人垂涎的[number]%%[number]. :) -
@ariel 问题是
[number]%%[number]不是 元素。所以,就目前而言,我的解决方法是采用body.html()并将其传递给识别上述模式的正则表达式。但我愿意接受更优雅的解决方案。 -
所以该元素不存在。它不被解析为元素,它只在主体上
-
这种模式在 HTML 中是否出现多次?还是只有一次?
标签: java html-parsing jsoup