我想获取特定标签中最后一项的最后一项
我的意思是;
<tr>
<td><b>my name</b></td>
<td><spec id="nm" nm="eg">Example Name</spec>
</td>
</tr>
....
<tr>
<td><b>samp2</b></td>
<td title="samp2"><div>Example 2</div>
</td>
</tr>
我想达到"Example Name"
我想写一个动态程序?我怎么能这样做?
(你可以看到最后一个标签是"spec"
,也许是最后一个标签sam
的另一个场景我怎样才能找到最后一个标签内部html?第二个样本我想得到Example 2
)
如果我有这个:
<table>
<tr>
<td>1</td>
<td><div>2</div></td>
</tr>
<tr>
<td><span>3</span></td>
</tr>
</table>
所以我需要的输出应该是:
因为它们是tr
标记下的内部html的最后一个标记。
(我想在tr标签下的最后一个标签,但是如果它有子元素我想要它的内部html)
提前谢谢?
答案 0 :(得分:0)
您可以使用jsoup html解析器来执行此操作,您可以使用css或jquery之类的选择器来查找元素
String html = "<table><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td></tr></table>";
Document doc = Jsoup.parse(html);
System.out.println(doc);
Elements elements = doc.select("tr td:last-child");
for(Element element: elements) {
System.out.println(element.html());
}
<强>输出强>
2
4
答案 1 :(得分:-2)
您可以尝试使用正则表达式:
/<spec[^>]*>(.*?)<\/spec>/
我认为它效率不高但您可以尝试,检查正则表达式以获得更好的性能
/<td[^>]*>(.*?)<\/td><\/tr>/
这是近似值。会失败孩子的主题。您可以使用此结果删除span,div等。
/<(.*?)[^>]*>(.*?)<\/(.*?)>/