我正在尝试将每个单元格的所有信息放在一行中的表格中。我需要弄清楚如何打印表格中每列的标题。
td, table {
border: 2px black solid;
}
<table>
<tr>
<td>a1</td>
<td>a2</td>
<td>a3</td>
<td>a4</td>
</tr>
<tr>
<td>b1</td>
<td>b2</td>
<td>b3</td>
<td>b4</td>
</tr>
<tr>
<td>c1</td>
<td>c2</td>
<td>c3</td>
<td>c4</td>
</tr>
<tr>
<td>d1</td>
<td>d2</td>
<td>d3</td>
<td>d4</td>
</tr>
</table>
Table 1
+----+----+----+----+
| a1 | a2 | a3 | a4 |
+----+----+----+----+
| b1 | b2 | b3 | b4 |
+----+----+----+----+
| c1 | c2 | c3 | c4 |
+----+----+----+----+
| d1 | d2 | d3 | d4 |
+----+----+----+----+
Table 2
+----+----+----+----+
| e1 | e2 | e3 | e4 |
+----+----+----+----+
| f1 | f2 | f3 | f4 |
+----+----+----+----+
| g1 | g2 | g3 | g4 |
+----+----+----+----+
| h1 | h2 | h3 | h4 |
+----+----+----+----+
And Other Tables ...
我想将单元格打印在单元格顶部(即tr [1])。
输出不应该有第一个原始..
第一个输出应为:
单元格b1具有标题a1
...
单元格g2具有标题e2
依旧......
我正在使用xidel:
xidel $site -e "//tr[position()>1]/td/concat('The cell ', ., $codeX)"
$codeX
应该是什么价值?
谢谢,
答案 0 :(得分:2)
Xidel支持XQuery 3.0,以便构建我建议的任务。
let $rows := //tr,
$header-cells := $rows[1]/td
for $data-row in $rows[position() gt 1]
for $cell at $pos in $data-row/td
return $cell!('cell ' || . || ' has header ' || $header-cells[$pos])
不确定这是否可以从命令行运行良好但是可以完成工作。
答案 1 :(得分:0)
要获取表格标题 t,如果标记//tr[1]/td
用于标题(预期),则只获取第1个tr数据//tr[1]/th
或th
按列文字获取标题在该表上尝试此XPath:https://www.w3schools.com/css/tryit.asp?filename=trycss_table_border
//th[count(//tr/td[text()='Griffin'])]
逻辑是:使用td
函数找到具有特定文本//tr/td[text()='Griffin']
的{{1}}的位置。只需通过此职位找到count()
答案 2 :(得分:0)
您只能使用xpath来获取它:
//table//tr[1]/td[count(//table//td[text()='${cellValue}']/preceding-sibling::*) + number(boolean(//table//td[text()='${cellValue}']/preceding-sibling::*))]
注意: 指定包含现有值的单元格(例如'b3')会从标头('a3')中给出正确的单元格。 如果您尝试搜索无效的单元格值,则会收到正确的空值,因为标头中的单元格不存在。