我用 XPath 选择第一个/第二个或第四个 td 内容

Posted

技术标签:

【中文标题】我用 XPath 选择第一个/第二个或第四个 td 内容【英文标题】:What I do select first/second or forth td content with XPath 【发布时间】:2015-10-11 02:19:40 【问题描述】:
<table class="attributes">
    <tbody>
        <tr>
            <td class="label title"><b>scale</b></td>
            <td class="value">1/48</td>
            <td class="label title"><b>products</b></td>
            <td class="value">Plastic kits</td>
        </tr>
    <tbody>
</table>

在这上面打个脑残...

试图捕获 td 中的特定值。所以第一次我会抓住第一个,然后是第二个,依此类推......

    //table[@class='attributes']/tbody/tr//descendant::td[@class='value']

告诉我所有的 td 值如何只选择第二个或第三个。

我试过了:

    "//table[@class='attributes']/tbody/tr//descendant::td[@class='value']/td[2]" 

没有成功。

例如:

    $x("//*[@class='attributes']/tbody/tr/td[@class='value']") 

找到我

    [<td class=​"value">​1/48​</td>​, <td class=​"value">​Plastic kits​</td>​, <td     class=​"value">​Limited edition​</td>​, <td class=​"value">​Aircraft​</td>​, <td class=​"value">​Eduard​</td>​, <td class=​"value">​0.5 kg​</td>​]

然后我将 XPath 更改为:

    $x("//*[@class='attributes']/tbody/tr/td[@class='value'][1]")

添加 [1] 并且它的作用是返回

    [<td class=​"value">​1/48​</td>​, <td class=​"value">​Limited edition​</td>​, <td class=​"value">​Eduard​</td>​]

【问题讨论】:

链接到 img 到目前为止i435.photobucket.com/albums/qq74/gtspeed15/xpath.gif 【参考方案1】:

要选择class='attributes' table 下的所有class='value' td 元素:

/table[@class='attributes']//td[@class='value']

选择:

<td class="value">1/48</td>
<td class="value">Plastic kits</td>

只选择第二个这样的td

(/table[@class='attributes']//td[@class='value'])[2]

【讨论】:

几乎那里添加了图片链接。似乎抓住了第一组 td 的 chrome xpath 没有得到任何奇怪的东西,它似乎从来没有真正运作良好。 您可能已经清楚地知道您想要哪个td,但是您添加的图像并没有确定它。它也没有说明我向您展示的如何选择第二个 td 无法满足您的需求。 如果我没有很好地解释自己,我深表歉意。链接的图像是我试图简化它的实际 html。如果这是正确的术语,我可以确定所需的 td 树。但它给了我其中的 4 个,我现在只需要在这个实例上的第一个,然后我可以继续接下来的几个。 例如 $x("//*[@class='attributes']/tbody/tr/td[@class='value']") 找到我 [​1/48​​, ​塑料套件​​, ​限量版​ ​, ​飞机​​, ​爱德华​​, ​0.5 kg ​​] 然后我将 xpath 更改为 $x("//*[@class='attributes']/tbody/tr/td[@class='value'][1]") 添加[1] 它的作用是返回 [​1/48​​, ​限量版​​, ​爱德华​​] 请更新您的问题;在 cmets 中阅读代码太难了。谢谢。

以上是关于我用 XPath 选择第一个/第二个或第四个 td 内容的主要内容,如果未能解决你的问题,请参考以下文章

您如何在 F# 或任何函数式语言中对第二个(或第三个、第四个、...)参数进行 curry?

css #CSS:如何使用CSS获得第二个或第三个孩子

Ajax确认仅询问一个数据

如何使用 CSS 获得特定数字的孩子?

border-radius 可以接收哪些值呢?

jQuery UI 日期选择器;禁用第二个和第四个星期六