如何处理xquery中的空节点?
How to deal with empty node in xquery?
我想打印这样的 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)
)
您可以使用 if/else
语句来控制缺少 span 标签时的操作。
if (empty($x/span)) then
(: do what you need here :)
else
$x/span
一个常见的成语是
($x/span, "default")[1]
但是如果 $x/span
可以 select 多个项目,这可能不适合你。
XPath:
//td[b/a[@title]]/join(
(
b/a/@title,
(span,"")[1],
p
),
x:cps(9)
)
XQuery:
for $x in //td[b/a[@title]] return
$x/join(
(
b/a/@title,
(span,"")[1],
p
),
"	"
)
我想打印这样的 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)
)
您可以使用 if/else
语句来控制缺少 span 标签时的操作。
if (empty($x/span)) then
(: do what you need here :)
else
$x/span
一个常见的成语是
($x/span, "default")[1]
但是如果 $x/span
可以 select 多个项目,这可能不适合你。
XPath:
//td[b/a[@title]]/join(
(
b/a/@title,
(span,"")[1],
p
),
x:cps(9)
)
XQuery:
for $x in //td[b/a[@title]] return
$x/join(
(
b/a/@title,
(span,"")[1],
p
),
"	"
)