Html 如何通过pup从下一行选择值?

Html 如何通过pup从下一行选择值?,html,html-table,css-selectors,pup,Html,Html Table,Css Selectors,Pup,鉴于下表: <table> <tr> <td>Foo</td> <td>Bar</td> <td>Buzz</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <t

鉴于下表:

<table>
  <tr>
    <td>Foo</td>
    <td>Bar</td>
    <td>Buzz</td>
  </tr>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr>
    <td>4</td>
    <td>5</td>
    <td>6</td>
  </tr>
</table>
我知道如何通过以下方式返回下一列:

$ pup -f table.html 'td:contains("Foo") + td text{}'
Bar
我希望通过以下方式获得下一行:

$ pup -f table.html 'td:contains("Foo") + tr text{}'
但它不会返回任何内容(我希望是
1

这里是,但我希望解决方案能够与
pup
命令一起工作

我已经检查过了,但找不到合适的选择。

td:contains("Foo") + tr text{}
表示直接跟在
td
后面的
tr
的文本,作为同级。根据表结构,
tr
s不是
td
s的兄弟姐妹-他们是他们的父母

pup有自己的
:parent-of()
伪类,已列出,但这还不足以满足您的需要,因为您无法在与现有列相同的列中选择下一行的
td
。Selectors4的列组合器
|
正是您想要的,但它没有在任何地方实现,当然也没有在pup中实现。使用任何主要与CSS选择器一起工作的命令行工具来实现这一点并不简单

td:contains("Foo") + tr text{}