【问题标题】:How to join two extracted values with xidel?如何用 xidel 连接两个提取的值?
【发布时间】:2020-03-06 04:51:24
【问题描述】:

我使用下面的代码来提取两个使用xidel -e的值。

  • '//input[@name="qid"]/@value[1]'
  • "//span[@id='trueFinalResultCount']"

但我想将这两个结果转换成 TSV 格式。

result1<TAB>result2

谁能告诉我如何结合以上两个表达式? (我尝试了以下方法。但它不起作用。)

'join((//input[@name="qid"]/@value[1], //span[@id='trueFinalResultCount'][1]), x:cps(9))'

【问题讨论】:

  • 试试string-join( ($x, $y), '&amp;#09;')
  • 您能用xidel 测试解决方案吗?我试过'string-join((//input[@name="qid"]/@value[1], //span[@id='trueFinalResultCount'][1]), "&amp;#09;")'。但我只得到第一个值。
  • 你能分享你的来源吗?也请修正你的报价。 'function("string")' 用于 Unix,而"function('string')" 用于 Windows。
  • 我没有你的数据,但这有效:xidel https://google.com --xquery 'string-join(//a ! string-join(((./string(), "¡Untitled!")[. ne ""][1], @href), "&amp;#09;"), "&amp;#10;")'。这使用标准 XQuery 3 创建 TSV 文件:Google 主页上的每个链接一行,每行两列(由制表符分隔):标题和 URL。如果您提供包含数据的 URL,我很乐意针对您的问题提供具体答案。
  • 我同意 Reino 的观点 - 您使用引号可能是您的问题的原因。在我的示例中(在 macOS 上使用),请注意一对单引号 (') 是如何围绕整个查询主体的,而在查询主体内部,仅使用双引号 (")。

标签: xml xpath xquery xidel


【解决方案1】:

string-join( ($x, $y), ' ') 并将 ' ' 替换为“tab-key press here”

示例: xidel URL --xpath 'string-join((somepath1, somepath2)," ")'

导致TSV

【讨论】:

    猜你喜欢
    • 2015-01-14
    • 1970-01-01
    • 2021-08-14
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    相关资源
    最近更新 更多