Xpath 定位从 CSS 开始

Xpath targeting starting from CSS

我想在 XPath(用于 Google 电子表格的 xmlImport 中)中定位 CSS 中的元素 .forum-table tr:nth-of-type(1) .forum-number-topics:

<table class="forum-table forum-table-forums">
    <thead class="forum-header">
        <tr>
            <th class="forum-icon">&nbsp;</th>
            <th class="forum-name">Forum</th>
            <th class="forum-topics">Topics</th>
            <th class="forum-posts">Posts</th>
            <th class="forum-last-post">Last post</th>
        </tr>
    </thead>
    <tbody id="forum-table-12892-content">
        <tr class="forum-row even container-12897-child" id="forum-12897">
            <td class="forum-list-icon forum-list-icon-default"> <span class="forum-list-icon-wrapper"><span>No new</span></span>
            </td>
            <td colspan="1" class="forum-details">
                <div class="forum-name"> <a href="/forums/settimana-1-1">Settimana 1</a>

                </div>
            </td>
            <td class="forum-number-topics">
                <div class="forum-number-topics">20</div>
            </td>
            <td class="forum-number-posts">171</td>
            <td class="forum-last-reply">n/a</td>
        </tr>
        <tr class="forum-row odd container-13043-child" id="forum-13043">
            <td class="forum-list-icon forum-list-icon-default"> <span class="forum-list-icon-wrapper"><span>No new</span></span>
            </td>
            <td colspan="1" class="forum-details">
                <div class="forum-name"> <a href="/forums/settimana-2-0">Settimana 2</a>

                </div>
            </td>
            <td class="forum-number-topics">
                <div class="forum-number-topics">21</div>
            </td>
            <td class="forum-number-posts">143</td>
            <td class="forum-last-reply">n/a</td>
        </tr>
        <tr class="forum-row even container-13107-child" id="forum-13107">
            <td class="forum-list-icon forum-list-icon-default"> <span class="forum-list-icon-wrapper"><span>No new</span></span>
            </td>
            <td colspan="1" class="forum-details">
                <div class="forum-name"> <a href="/forums/settimana-3-0">Settimana 3</a>

                </div>
            </td>
            <td class="forum-number-topics">
                <div class="forum-number-topics">20</div>
            </td>
            <td class="forum-number-posts">91</td>
            <td class="forum-last-reply">n/a</td>
        </tr>
    </tbody>
</table>

我指定了 tr:nth-of-type(1) 因为我需要在 Xpath 中使用相同的语法(带有数字实体)。

作为直译,我会尝试

//*[contains(@class, 'forum-table')]//tr[1]//*[contains(@class, 'forum-number-topics')]

请注意,这将 select <td><div> 元素,例如你在哪里

<td class="forum-number-topics">
    <div class="forum-number-topics">

在输入中。另请注意,这假设您没有 "ornery" classes 包含 forum-table 但不是整个 class 名称,例如如果你的第一个 table 元素有 class="forum-table-forums" 而没有 forum-table 在那里。如果你需要更严格地匹配 class 个名字,你可以做

//*[contains(concat(' ', @class, ' '), ' forum-table ')]//tr[1]//
  *[contains(concat(' ', @class, ' '), ' forum-number-topics ')]

(为清楚起见,虚线)。