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{}