java - 提取 HTML <br> 标签中的文本 JSOUP

标签 java html jsoup

我正在编写一个 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 &amp; PH)

$70/Day(Mon-Fri, excl PH: Entry - 24:00)
$100/day (Sat, Sun &amp; PH: Entry - 24:00)

关于java - 提取 HTML <br> 标签中的文本 JSOUP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31870025/

相关文章:

java - 定义在将 Spring 事务管理与 hibernate 一起使用时不在事务中运行的方法

java - 遍历 hashmap - 抛出异常

java - eclipse 生成可执行 jar 文件背后的魔力

java - 解析 url 时处理重定向

java - Jsoup - 提取标签 :namespace

Java Play - 将对象列表与内部的 Map<String, AnotherObject> 绑定(bind)

HTML减少图像上的渐变层?

javascript - 任何好的 firefox 跨浏览器网页兼容性测试插件?

javascript - 使用 jQuery 切换基于两组复选框的各种 div 的可见性?

java - 使用 Jsoup 从 url 获取数据时停止工作错误