【问题标题】:Using xidel to extract a key-value pair使用 xidel 提取键值对
【发布时间】:2015-01-14 12:48:38
【问题描述】:

我在这样的网站上有多个表格:

<table>
  <tr>
    <td>Name</td>
    <td>foo</td>
  </tr>
  <tr>
    <td>Count</td>
    <td>15</td>
  </tr>
  <tr>
    <td>Date</td>
    <td>2014-11-17</td>
  </tr>
</table>
<table>
  <tr>
    <td>Name</td>
    <td>bar</td>
  </tr>
  <tr>
    <td>Count</td>
    <td>42</td>
  </tr>
  <tr>
    <td>Date</td>
    <td>2014-12-24</td>
  </tr>
</table>
...

我想收到这样的东西

foo    15
bar    42

我在 xidel 的第一次尝试是 xidel --xpath "//table/tr[1]/td[2]" --xpath "//table/tr[2]/td[2]",但这是给予

foo
bar

15
42

如何在一行中提取两个值?

【问题讨论】:

    标签: html xpath xidel


    【解决方案1】:

    使用 XPath 或 XQuery 3.0://table/tbody/(tr[1]/td[2] || ' ' || tr[2]/td[2])。我认为您需要明确请求该版本,至少我需要在http://videlibri.sourceforge.net/cgi-bin/xidelcgi 上这样做。我解析为 HTML,其中解析器添加了一个 tbody 元素,路径也需要它。

    【讨论】:

      【解决方案2】:
      xidel-0.9.5.4998.exe -s --input-format=xml <input> ^
                           --xquery "//table/concat(tr[1]/td[2],'&#09;',tr[2]/td[2])"
      foo     15
      bar     42
      

      【讨论】:

      • 这看起来像一个命令,但它没有正确包装,并且没有说明你在做什么以及它是如何工作的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-06
      • 2021-08-14
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多