我想使用JSoup从HTML中选择特定文本的元素。 HTML如下:
<td style="vertical-align:bottom;text-align:center;width:15%">
<div style="background-color:#FFDD93;font-size:10px;margin:5px auto 0px auto;text-align:left;" class="genbg"><span class="corners-top-subtab"><span></span></span>
<div><b>Pantry/Catering</b>
<div>
<div style="color:#00700B;">✓ Pantry Car Avbl
<br />✓ Catering Avbl</div>
</div>
<div>
<div><span>Dinner is served after departure from NZM on 1st day.;</span>...
<br /><a style="font-size:10px;color:Red;" onClick="expandPost($(this).parent());" href="javascript:void(0);">Read more...</a>
</div>
<div style="display:none;">Dinner :2 chapati, rice, dal and chicken curry (NV) and paneer curry in veg &Ice cream.; Breakfast:2 bread slices with jam and butter. ; Omlet of 2 eggs (Non veg),vada and sambar(veg)..; coffee & lime juice</div>
</div>
</div><span class="corners-bottom-subtab"><span></span></span>
</div>
我想找到包含文本“Pantry/Catering”的div元素。我尝试了
doc.select("div:contains(Pantry/Catering)").first();
但是这似乎不起作用。我该如何使用Jsoup获取此元素?
b:contains(Pantry/Catering)
),然后使用.parent()
往回工作。 - SpectreElements
中的contains
是来自Collection
接口,用于测试是否包含特定的Element
,而不是用于检查文本内容。此外,请确保您理解 Element 和 Elements 之间的区别。 - Spectredoc.select("div:contains(Pantry/Catering)").get(1)
,但对我来说仍然不起作用。顺便说一下,我发布的代码中只有一个"Pantry/Catering"
。那么你是如何匹配两次的? - tbag:contains()
伪选择器匹配包含指定文本的元素,可以直接包含,也可以包含在任意子孙元素中。在最简单的情况下,<a><b>text</b></a>
,b 直接包含 'text'。a 也包含 'text',因为它包含 b,而 b 包含 'text'。 - Spectre