发布
社区首页 >问答首页 >选择特定列标题下的所有行(可变列标题)

选择特定列标题下的所有行(可变列标题)
EN

Stack Overflow用户
提问于 2016-09-19 22:04:02
回答 1查看 629关注 0票数 1

我有一张这样的桌子:

代码语言:javascript
代码运行次数:0
复制
<table>
<tr class="header">
    <td>
        Col1
    </td>
    <td>
        Col2
    </td>
    <td>
        Col3
    </td>
    <td>
        Col4
    </td>
</tr>
<tr class="rowOdd">
    <td>
        Value1
    </td>
    <td>
        Value2
    </td>
    <td>
        Value3
    </td>
    <td>
        Value4
    </td>
</tr>
<tr class="rowEven">
    <td>
        Value1
    </td>
    <td>
        Value2
    </td>
    <td>
        Value3
    </td>
    <td>
        Value4
    </td>
</tr>
</table>

实际上,我想做的是使用Xpath选择指定列标题下的所有行。列标题实际上是从"5XS“到"6XL”的衬衫尺寸。诀窍在于每个表的列数是不同的。有些有10列,有些只有5列或更少(即较少的衬衫尺码)。但是标头名称是固定的名称: item_name、5xs、4xs等等。只是并不是所有的尺寸都出现在每个表中。因此,我必须编写一个xpath,让它搜索特定的标题名称(或衬衫尺码),并获取该特定标题名称下的所有行。我试过这段代码,它似乎起作用了:

代码语言:javascript
代码运行次数:0
复制
*[count(../../tr/td[@class='header'][.='5xs']/preceding-sibling::*)+1]

然而,我的问题是,如果标头'5xs‘不存在于我当前正在处理的表中,我将默认使用column1 (item_name)的值。如果我正在查找的特定标题名称在当前表中不存在,有没有办法让我获得空白或根本不选择行?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-09-20 07:02:37

您可以使用包含的xpath函数。如果你有不同的类名和标记结构,比如你有不同的类名:

代码语言:javascript
代码运行次数:0
复制
<table>
<tr class="header_Name1">
    <td>
        Col1
    </td>
</tr>
<tr>
    <td>
        Value1
    </td>
</tr>
<tr class="header_Name2">
    <td>
        Col2
    </td>
</tr>
<tr>
    <td>
        Value1
    </td>
</tr>
</table>

以下内容:

代码语言:javascript
代码运行次数:0
复制
//tr[contains(@class,'header_Name')]

应返回:

代码语言:javascript
代码运行次数:0
复制
["\nCol1\n\n", "\nCol2\n\n"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39575146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档