使用jSoup解析最内层的html标签
问题描述:
这是我的代码。使用jSoup解析最内层的html标签
String tags="<html><head></head><body><table><tr><td>1</td></tr><tr><td><table><tr><td>3</td><td>4</td></tr></table></td></tr></table><body></html>";
Document document = Jsoup.parse(tags);
for(int i=0;i<document.body().childNodes().size();i++)
{
if(!document.body().childNodes().get(i).nodeName().startsWith("#"))
{
System.out.println("1st Level Nodes:"+document.body().childNodes().get(i).nodeName());
while(document.body().childNodes().get(i).childNodes().size()>1)
{
System.out.println("2nd Level: "+document.body().childNodes().get(i).childNodes().get(0).nodeName());
}
}
}
如何解析通过标记返回标记的HTML。循环未覆盖最内层标签。
这是格式良好的html代码。将所有标签解析为最内层。
<html>
<head></head>
<body>
<table>
<tr>
<td>1</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>3</td>
<td>4</td>
</tr>
</table>
</td>
</tr>
</table>
<body>
</html>
我想要得到所有html之间的标签作为html的层次结构,我用html代码显示。所以我喜欢根据父母和孩子的顺序逐个获取所有标签。
答
如果您只需要标签,你可以在这里使用:
String tags = "<html><head></head><body><table><tr><td>1</td></tr><tr><td><table><tr><td>3</td><td>4</td></tr></table></td></tr></table><body></html>";
Document doc = Jsoup.parse(tags);
for(Element e : doc.select("*") // you can use 'doc.getAllElements()' here too
{
System.out.println(e.tag());
}
输出:在jsoup
#root
html
head
body
table
tbody
tr
td
tr
td
table
tbody
tr
td
td
使用CSS查询?我不确定你想要做什么。 – gigadot
我想获取所有html之间的标签作为html的层次结构,我用html代码显示。所以我喜欢根据父母和孩子的顺序逐个获取所有标签。 –