不要在jsoup中的另一个标签内显示标签

时间:2016-09-13 16:06:30

标签: java html jsoup

HTML

<td> SCH4UE-01 : Chemistry <br> Block: 1 - rm. 315 </br></td>

想要br标记,但我想要所有其他文字(SCH4UE-01 : Chemistry

我尝试过的CSS查询

td:eq(0)输出:SCH4UE-01 : Chemistry Block: 1 - rm. 315

然而

br输出:Block: 1 - rm. 315

1 个答案:

答案 0 :(得分:1)

  

<br>标记是空标记,表示它没有结束标记。

请参阅:http://www.w3schools.com/tags/tag_br.asp

</br>替换<br>代码(如果您打印jsoup文档,jsoup会自动修复此类错误),您的<td>代码会有四个子节点:

  • #text
  • br
  • #text
  • br

因此,文本SCH4UE-01 : Chemistry是第一个子节点(element.childNode(0))。

<强>代码

String htmlString = "<html><body><table><td> SCH4UE-01 : Chemistry <br> Block: 1 - rm. 315 <br></td></table></body></html>";

Document doc = Jsoup.parse(htmlString);

Elements tdElements = doc.select("td");

for (Element tdElement : tdElements){
    System.out.println(tdElement.childNode(0));
}

<强>输出

 SCH4UE-01 : Chemistry