2

使用 import.io,给出以下代码片段,在成功提取nametime列之后,如何.heading使用 XPath 提取最近的前面元素作为第三列?

...

<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>

...
4

1 回答 1

1

在匹配数据之前的最近元素,具有“标题”类。

可以使用XPath 中的轴找到与给定元素最近的前一个元素。preceding假设我们有表达式div/div[class='name'][. = 'Heroes'],它在您的示例中选择姓氏,最接近的前一个将是:

./preceding::div[@class = 'heading'][1]

where.是真正的上下文节点,在这种情况下您可以删除./,或者应该将其替换为您已经拥有的其余表达式。

由于前面的轴倒数,我们只需要找到第一个元素。请注意,前面的轴不选择祖先或自身节点,从当前节点开始计数。

于 2015-09-07T21:34:56.590 回答