使用import.io,给定以下代码段,在成功提取name
和time
列后,如何使用XPath将最近的.heading
元素作为第三列提取?
...
<div class="row-fluid">
<div class="heading">HBO</div>
</div>
<div class="row-fluid">
<div class="name">Silicon Valley</div>
<div class="time">9pm</div>
</div>
<div class="row-fluid">
<div class="name">The Wire</div>
<div class="time">10pm</div>
</div>
...
<hr>
<div class="row-fluid">
<div class="heading">ABC</div>
</div>
<div class="row-fluid">
<div class="name">Lost</div>
<div class="time">9pm</div>
</div>
<div class="row-fluid">
<div class="name">Heroes</div>
<div class="time">10pm</div>
</div>
...
<hr>
...
答案 0 :(得分:1)
匹配数据之前的最近元素&#34;标题&#34;。
可以在XPath中使用preceding
轴找到给定元素中最近的前面的元素。假设我们有表达式div/div[class='name'][. = 'Heroes']
,它选择示例中的姓氏,最接近的前一个名称为:
./preceding::div[@class = 'heading'][1]
其中.
是真正的上下文节点,在这种情况下您可以删除./
,或者应该将其替换为您已有的表达式的其余部分。
由于前一轴向后计数,我们只想找到第一个元素。请注意,前一轴不会选择祖先或自身节点,从当前节点开始计算。