我是Xquery的新手。我试图实现以下场景(xslt),它将根据条件创建一个标签。
<xsl:if test="x = 0">
<Tag>Sample</Tag>
</xsl:if>
如何在Xquery中实现相同的目标?
- 编辑在下面 -
尝试使用以下代码得到输出,如图所示。可能出了什么问题?
<Root>
<Name>sampleName</Name>
let $xyz := 10
if ($xyz > 1)
then
return <ns1:Primary_Acct_Num>11222</ns1:Primary_Acct_Num>
</Root>
输出(与上述输入相同)
<Root>
<Name>sampleName</Name>
let $xyz := 10
if ($xyz > 1)
then
return <ns1:Primary_Acct_Num>11222</ns1:Primary_Acct_Num>
</Root>
答案 0 :(得分:3)
您可以使用
if (x = 0) then <Tag>Sample</Tag> else ()
至于在直接元素构造函数中使用表达式,你需要将它括在花括号https://www.w3.org/TR/xquery-31/#dt-enclosed-expression中,如
<Root>
<Name>sampleName</Name>
{
let $xyz := 10
return
if ($xyz > 1)
then <Primary_Acct_Num>11222</Primary_Acct_Num>
else ()
}
</Root>
http://xqueryfiddle.liberty-development.net/bFukv88
另一种方法是创建元素,但在谓词中添加条件,例如
<Root>
<Name>sampleName</Name>
{
let $xyz := 10
return <Primary_Acct_Num>11222</Primary_Acct_Num>[$xyz > 100]
}
</Root>