Xpath获取第n个元素
Xpath get nth element
我正在尝试使用 xpath 从这个 html 中提取死亡年龄。我遇到的问题是它没有 class 名称或选择器来获取信息。有没有办法获取第 3 个 class 统计数据,然后在其中获取第 3 个 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
您可以 select 使用以下 XPath-1.0 表达式的年龄值:
=IMPORTXML(B3,"//div[contains(@class,'stat') and contains(h6,'Death Date')]/a[contains(@href,'/deceased/age')]/span/following::text()")
其中 returns 71
包括一些空格。
要去掉前导空格和尾随空格,请使用
=IMPORTXML(B3,"normalize-space(//div[contains(@class,'stat') and contains(h6,'Death Date')]/a[contains(@href,'/deceased/age')]/span/following::text())")
我正在尝试使用 xpath 从这个 html 中提取死亡年龄。我遇到的问题是它没有 class 名称或选择器来获取信息。有没有办法获取第 3 个 class 统计数据,然后在其中获取第 3 个 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
您可以 select 使用以下 XPath-1.0 表达式的年龄值:
=IMPORTXML(B3,"//div[contains(@class,'stat') and contains(h6,'Death Date')]/a[contains(@href,'/deceased/age')]/span/following::text()")
其中 returns 71
包括一些空格。
要去掉前导空格和尾随空格,请使用
=IMPORTXML(B3,"normalize-space(//div[contains(@class,'stat') and contains(h6,'Death Date')]/a[contains(@href,'/deceased/age')]/span/following::text())")