Xml Xquery:嵌套ifs
基本上我有几个序列可能是空的,如果它们是空的,那么我不想输出它的父节点。如果所有序列都是空的,那么我不希望包含节点。基本上,我的代码与此类似,但不起作用:Xml Xquery:嵌套ifs,xml,xquery,Xml,Xquery,基本上我有几个序列可能是空的,如果它们是空的,那么我不想输出它的父节点。如果所有序列都是空的,那么我不希望包含节点。基本上,我的代码与此类似,但不起作用: let $a := //a let $b := //b return <root> {if (exists($a) or exists($b)) then <div id="container"> {if (exists($a)) then <h2&g
let $a := //a
let $b := //b
return
<root>
{if (exists($a) or exists($b)) then
<div id="container">
{if (exists($a)) then
<h2>As</h2>
<div>
{for loop for $a sequence...}
</div>
else()
}
{if (exists($b)) then
<h2>Bs</h2>
<div>
{for loop for $b sequence...}
</div>
else()
}
</div>
else()
}
</root>
let$a:=//a
让$b:=//b
返回
{如果(存在($a)或存在($b)),则
{如果(存在($a)),则
作为
{for$a序列的循环…}
else()
}
{如果(存在($b)),则
学士学位
{for$b序列的循环…}
else()
}
else()
}
您的查询中有一个简单的语法错误:
if (exists($a))
then
<h2>As</h2>
<div>
{for loop for $a sequence...}
</div>
else
()
查询中有一个简单的语法错误:
if (exists($a))
then
<h2>As</h2>
<div>
{for loop for $a sequence...}
</div>
else
()
非常感谢您的解决方案。你的谓词技巧确实非常巧妙,谢谢分享。尽管在eXist DB 1.4中,非空序列本身不会返回true。您必须对其调用exists()。非常感谢您提供的解决方案。你的谓词技巧确实非常巧妙,谢谢分享。尽管在eXist DB 1.4中,非空序列本身不会返回true。您必须对其调用exists()。
let $a := //a
let $b := //b
return
<root>
{
<div id="container">
{
(<h2>As</h2>,
<div>
{
...
}
</div>)[$a],
(<h2>Bs</h2>,
<div>
{
...
}</div>)[$b])
}
</div>[$a or $b]
}
</root>