我正在编写一个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)
我怎样才能将它们与&lt; br&gt;标签
答案 0 :(得分:4)
您可以将所有<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)
答案 1 :(得分:2)
根据这个问题
String text =type1.first.text();
String[] textArr = text.split("<br>");