Xslt 如果xquery中存在数据,则创建标记
我对Xquery相当陌生。我试图实现下面的场景(xslt),它将根据一个条件创建一个标记Xslt 如果xquery中存在数据,则创建标记,xslt,xquery,Xslt,Xquery,我对Xquery相当陌生。我试图实现下面的场景(xslt),它将根据一个条件创建一个标记 <xsl:if test="x = 0"> <Tag>Sample</Tag> </xsl:if> 样品 如何在Xquery中实现同样的功能 --编辑如下-- 使用下面的代码进行了尝试,得到了如图所示的输出。可能出了什么问题 <Root> <Name>sampleName</Name> let
<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>
sampleName
设$xyz:=10
如果($xyz>1)
然后
返回11222
输出(与上述输入相同)
sampleName
设$xyz:=10
如果($xyz>1)
然后
返回11222
您可以使用
if (x = 0) then <Tag>Sample</Tag> else ()
if(x=0)则采样else()
至于在直接元素构造函数中使用表达式,需要将其括在大括号中,如中所示
sampleName
{
设$xyz:=10
返回
如果($xyz>1)
然后是11222
else()
}
另一种方法是创建元素,但在谓词中添加条件,例如
<Root>
<Name>sampleName</Name>
{
let $xyz := 10
return <Primary_Acct_Num>11222</Primary_Acct_Num>[$xyz > 100]
}
</Root>
sampleName
{
设$xyz:=10
返回11222[$xyz>100]
}
谢谢您的回复。在哪里添加这个?如果在根元素后按以下方式使用,则会引发错误。请编辑您的问题,并提供一些上下文,说明您有哪些输入以及希望在哪里输出
标记
元素。感谢Martin对此进行研究。添加了问题中尝试的xquery代码非常感谢Martin。当使用花括号时,它起作用。
<Root>
<Name>sampleName</Name>
{
let $xyz := 10
return
if ($xyz > 1)
then <Primary_Acct_Num>11222</Primary_Acct_Num>
else ()
}
</Root>
<Root>
<Name>sampleName</Name>
{
let $xyz := 10
return <Primary_Acct_Num>11222</Primary_Acct_Num>[$xyz > 100]
}
</Root>