Java Jsoup文本节点被其他标记一分为二
我有一些像这样的东西Java Jsoup文本节点被其他标记一分为二,java,html-parsing,jsoup,Java,Html Parsing,Jsoup,我有一些像这样的东西 <div> textA <table> <tbody> <tr> <td>textB</td> </tr> </tbody> </table> textC </div> 即使textA和textC是同一个节点的一部
<div>
textA
<table>
<tbody>
<tr>
<td>textB</td>
</tr>
</tbody>
</table>
textC
</div>
即使textA和textC是同一个节点的一部分,是否有任何方法可以拆分它们
即使textA和textC是同一个节点的一部分,是否有任何方法可以拆分它们
您可以做的是用Jsoup加载HTML代码,然后让它给出整个文本。之后,您可以使用String#split
拆分此文本
示例代码
您的HTML代码段无效
t正文
只能在表格标记内使用。看,是的,我知道它是无效的,我只是这样写的,以简化问题,所以你的实际HTML看起来不同?为什么不创建一些Jsoup至少可以正确解析的东西呢?我更改了它,以便您可以获得更好的视图。嘿,非常感谢您的回答,事实上,在您回答之前,我已经做到了:)。我在想,既然我解析了一个完整的html文件,我不知道textC中的内容,我知道textA中的一些内容是常量,所以这就是我所使用的,但它有问题,因为我正在拆分一个字符串,这个字符串可能也在textA的其他地方。
textA textB // this is my first string
textC // this is my second string
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