测试:示例
测试1:示例1
Elements size = doc.select("div:contains(test:)");
我如何从这个html标签中提取值示例和示例1..使用jsoup ..
由于此 HTML 的语义不足以满足您的最终目的(a<br>
不能有子级且:
不是 HTML),因此您无法使用 Jsoup 之类的 HTML 解析器做很多事情。HTML 解析器并不打算完成特定文本提取/标记化的工作。
您可以做的最好的事情是获取<div>
使用 Jsoup 的 HTML 内容,然后使用通常java.lang.String
或可能的java.util.Scanner
方法进一步提取该内容。
这是一个启动示例:
String html = "<div style=\"height:240px;\"><br>test: example<br>test1:example1</div>";
Document document = Jsoup.parse(html);
Element div = document.select("div[style=height:240px;]").first();
String[] parts = div.html().split("<br />"); // Jsoup transforms <br> to <br />.
for (String part : parts) {
int colon = part.indexOf(':');
if (colon > -1) {
System.out.println(part.substring(colon + 1).trim());
}
}
这导致
例子 示例1
如果我是 HTML 作者,我会为此使用定义列表。例如
<dl id="mydl">
<dt>test:</dt><dd>example</dd>
<dt>test1:</dt><dd>example1</dd>
</dl>
这更具语义性,因此更容易解析:
String html = "<dl id=\"mydl\"><dt>test:</dt><dd>example</dd><dt>test1:</dt><dd>example1</dd></dl>";
Document document = Jsoup.parse(html);
Elements dts = document.select("#mydl dd");
for (Element dt : dts) {
System.out.println(dt.text());
}