gpt4 book ai didi

java - Jsoup如何检查一个元素是否有特定的子元素

转载 作者:行者123 更新时间:2023-11-30 02:09:25 25 4
gpt4 key购买 nike

如何检查 div 元素是否有 span 元素作为子元素。

我有一个 html 页面有一个 col-md-6 类名的 div,该 div 本身有时有一个价格类跨度,有时没有。

<div class="col-md-6">
<ul> <li>
<span class="price">
<strong class="bold">70,000 </strong>USD</span>
</li>
<li>
</li>
<li>8775 views </li>
</ul>
</div>

    
<div class="col-md-6">
<ul>
<li>
</li>
<li>yesterday</li>
<li>53 views</li>
</ul>
</div>
我尝试了这段代码,但它没有按预期打印 0!

 try 
{
Document doc = Jsoup.connect("https://www.bezaat.com/ksa/riyadh/سيارات/all").userAgent("Mozilla/5.0(Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0").referrer("http://www.google.com").ignoreHttpErrors(true).get();

Elements EE = doc.select("div.col-md-12").select("div.col-md-6") ;

Elements E = doc.select("div.col-md-12").select("div.media.ads-style.reg").select("div.media-left");

for(int i = 0;i < E.size();i++)
{

if(EE.get(i).select("span.price").text() != null)
{
System.out.println(EE.get(i).select("span.price").text().replaceAll("[^0-9]",""));
}
else
{
System.out.println("0");
}}
}
catch(java.io.IOException e)
{
e.printStackTrace();
}

最佳答案

您需要的选择器是 div.col-md-6 span[class=price] - 找到一个div与类col-md-6然后寻找一个后代,即 span命名price - 注意查询的两个部分之间的空格!
示例代码 -

String html1 = "<div class=\"col-md-6\">" +
"<ul> <li> " +
"<span class=\"price\">" +
"<strong class=\"bold\">70,000 </strong>USD</span> " +
"</li>" +
"<li> " +
"</li>" +
"<li>8775 views </li> " +
"</ul>" +
"</div>";
String html2 = "<div class=\"col-md-6\">" +
"<ul>" +
"<li>" +
"</li>" +
"<li>yesterday</li>" +
"<li>53 views</li>" +
"</ul>" +
"</div>";
Document doc1 = Jsoup.parse(html1);
Elements price1 = doc1.select("div.col-md-6 span[class=price]");
if (price1.size() > 0)
System.out.println(price1.html());
else
System.out.println("not found in html1");
Document doc2 = Jsoup.parse(html2);
Elements price2 = doc2.select("div.col-md-6 span[class=price]");
if (price2.size() > 0)
System.out.println(price2.html());
else
System.out.println("not found in html2");

和输出 -

<strong class="bold">70,000 </strong>USD
not found in html2

关于java - Jsoup如何检查一个元素是否有特定的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50546066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com