我正在编写一个 JAVA 程序来提取项目的 HTML 数据。 这是HTML代码
<td align="left" valign="top" class="style3">
PC / Van<br>$14 (Mon-Fri, excl PH)
<br>
$18 (Sat, Sun & PH)<br><br>$70/Day(Mon-Fri, excl PH: Entry - 24:00)
<br>
$100/day (Sat, Sun & PH: Entry - 24:00)
</td></tr>
下面是我提取的JAVA代码。
String connect1 = url1.toString();
Document doc1 = Jsoup.connect(connect1).get();
// get all links
Elements type1 = doc1.select("[class=\"style3\"]");
int size = type1.size();
try {
String text =type1.first.text();
System.out.println(text);
} catch (Exception e) {
e.printStackTrace();
}
我得到的输出是
PC / Van$14 (Mon-Fri, excl PH)$18 (Sat, Sun & PH)$70/Day(Mon-Fri, excl PH: Entry - 24:00)$100/day (Sat, Sun & PH: Entry - 24:00)
如何将它们从 < br > 标签中分离出来?
最佳答案
你可以替换所有<br>
标签到 \n
符号,代码示例如下:
Document doc1 = Jsoup.parse(s);
Elements type1 = doc1.select("[class=\"style3\"]");
try {
String text =type1.first().html();
text = text.replaceAll("<br>", "\n");
System.out.println(text);
} catch (Exception e) {
e.printStackTrace();
}
或使用<br>
将文本拆分为字符串数组标签
Document doc1 = Jsoup.parse(s);
Elements type1 = doc1.select("[class=\"style3\"]");
try {
String text =type1.first().html();
String[] textSplitResult = text.split("<br>");
if (null != textSplitResult) {
for (String t : textSplitResult) {
System.out.println(t);
}
}
} catch (Exception e) {
e.printStackTrace();
}
或者使用java8 lambda输出结果
String text =type1.first().html();
String[] textSplitResult = text.split("<br>");
if (null != textSplitResult) {
Arrays.stream(textSplitResult).peek((x) -> System.out.println(x)).count();
//or Arrays.stream(textSplitResult).peek(System.out::println).count();
}
执行结果:
PC / Van
$14 (Mon-Fri, excl PH)
$18 (Sat, Sun & PH)
$70/Day(Mon-Fri, excl PH: Entry - 24:00)
$100/day (Sat, Sun & PH: Entry - 24:00)
关于java - 提取 HTML <br> 标签中的文本 JSOUP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31870025/