2

我一直在尝试根据已知的 td 类为标题创建 xpath。

<tr>
<td class="...">
    <table class="...">
        ...
    </table>
</td>   
<td class="...">    
    <table class="...">
        <caption class="...">CAPTION_WANTED</caption>
        <colgroup>
            ...
        </colgroup>
        <tbody>
            ...
            <tr class="...">
                ...
            </tr>
            <tr class="...">
                ...
                <td class="...">
                    ...
                </td>
                <td class="TD_KNOWN">
                    <div class="...">...</div>
                </td>
                ...
            </tr>
            ...
        </tbody>
    </table>
</td>
</tr>
...

我试过这个://*tr[KNOWN_ID]/td/table[tbody[tr[td[@class,"TD_KNOWN"]]]]/caption但它没有用。当我想要包含 smth 的 smth 包含 smth... 时,我应该使用方括号吗?

4

1 回答 1

1

这些 XPath 中的任何一个:

//td[@class="TD_KNOWN"]/../../../caption

或者

//td[@class="TD_KNOWN"]/ancestor::table[1]/caption

应用于您的输入 XML 将产生:

<caption class="...">CAPTION_WANTED</caption>

按你的要求。

如果您想要文本本身,只需附加/text()到上述任一 XPath。例如,

//td[@class="TD_KNOWN"]/ancestor::table[1]/caption/text()

将产生

CAPTION_WANTED
于 2013-11-04T02:05:09.467 回答