1

我想打印这样的 TSV 输出。但是当$x/span没有找到任何东西时,只会打印两列。什么都没找到时如何在第二列中插入一个空字段$x/span?谢谢。

for $x in //td/b/a[@title]/parent::b/parent::td
return join(
    (
        $x/b/a/@title
        , $x/span
        , $x/p
    )
    , x:cps(9)
)
4

3 回答 3

2

XPath:

//td[b/a[@title]]/join(
  (
    b/a/@title,
    (span,"")[1],
    p
  ),
  x:cps(9)
)

查询:

for $x in //td[b/a[@title]] return
$x/join(
  (
    b/a/@title,
    (span,"")[1],
    p
  ),
  "	"
)
于 2020-07-26T18:40:29.953 回答
1

一个常见的成语是

($x/span, "default")[1]

$x/span但是,如果可以选择多个项目,这可能不适合您。

于 2020-07-26T08:45:08.443 回答
1

您可以使用语句来控制在缺少span标签if/else的情况下要做什么。

if (empty($x/span)) then  
    (: do what you need here :)
else  
    $x/span
于 2020-07-26T02:29:30.070 回答