xpath获取nth元素



我正在尝试使用XPATH从此HTML中拉出死亡年龄。我的问题是,它没有可以获取信息的类名称或选择器。有没有办法抓住三级统计数据,然后在那个抓住第三级href的内部,在那个抓住跨度之后的年龄?

? ?

这是我到目前为止所拥有的,但它不起作用

=IMPORTXML(B3,"//div[@class='stat'][3]")

HTML代码:

<div class="is-flex">
    <div class="col-xs-6 col-md-12">
    <div class="stat box">
    <i class="icn icn-birthday"></i>
    <h6> Birthday </h6>
<a href="/february26.html"><span class="hidden-sm">February</span><span class="hidden-xs hidden-md hidden-lg">Feb</span> 26</a>, <a href="/year/1932.html">1932</a>
</div>
</div>
<div class="col-xs-6 col-md-12">
<div class="stat box">
<i class="icn icn-birthplace"></i>
<h6>Birthplace</h6>
Kingsland,
<a href="/birthplace/arkansas.html"> AR </a>
</div>
</div>
<div class="col-xs-6 col-md-12">
<div class="stat box">
<i class="icn icn-age"></i>
<h6>Death Date</h6><a href="/deceased/day/september12.html">Sep 12</a>, <a href="/deceased/2003.html">2003</a> (<a href="/deceased/age/71.html"><span class="hidden-sm">age </span>71</a>)
</div>
</div>
<div class="col-xs-6 col-md-12">
<div class="stat box">
<i class="icn icn-horiscope"></i>
<h6>Birth Sign</h6><a href="/astrology/pisces.html">Pisces</a>
</div>
</div>
</div>

此xpath表达式:

//div[@class='stat box'][1]/a[3]/text()

应输出:

71

您可以使用以下XPath-1.0表达式选择年龄值:

=IMPORTXML(B3,"//div[contains(@class,'stat') and contains(h6,'Death Date')]/a[contains(@href,'/deceased/age')]/span/following::text()")

返回 71

包括一些空间。
要摆脱领先和落后的空间,请使用

=IMPORTXML(B3,"normalize-space(//div[contains(@class,'stat') and contains(h6,'Death Date')]/a[contains(@href,'/deceased/age')]/span/following::text())")

最新更新