Jsoup文本节点由其他标记

时间:2016-03-17 16:53:48

标签: java html-parsing jsoup

我有一些看起来像这样的东西

<div>
   textA
      <table>
         <tbody>
           <tr>
             <td>textB</td>
           </tr>
         </tbody>
      </table>
   textC
</div>

我想拆分它,看起来像这样:

textA textB // this is my first string
textC // this is my second string

有没有办法拆分textA和textC,即使它们是同一节点的一部分?

1 个答案:

答案 0 :(得分:0)

  

有没有办法拆分textA和textC,即使它们是同一节点的一部分?

你可以做的是用Jsoup加载HTML代码,然后让它给出全文。之后,您可以使用String#split分割此文本。

示例代码

String html = "<div>\n textA\n <table>\n <tbody>\n <tr>\n <td>textB</td>\n </tr>\n </tbody>\n </table>\n textC\n</div>";

Document doc = Jsoup.parse(html);

Element div =doc.select("div").first();
if (div!=null) {
    String[] splittedParts = div.text().split("(?=textC)");

    for(String s:splittedParts) {
        System.out.println(s);                
    }
}

输出

textA textB 
textC