簡體   English   中英

提取 HTML 中的文本<br>標簽 JSOUP

[英]Extract text within HTML <br> tags 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中拆分字符串

String text =type1.first.text();

String[] textArr = text.split("<br>");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM