Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 如果xquery中存在数据,则创建标记_Xslt_Xquery - Fatal编程技术网

Xslt 如果xquery中存在数据,则创建标记

Xslt 如果xquery中存在数据,则创建标记,xslt,xquery,Xslt,Xquery,我对Xquery相当陌生。我试图实现下面的场景(xslt),它将根据一个条件创建一个标记 <xsl:if test="x = 0"> <Tag>Sample</Tag> </xsl:if> 样品 如何在Xquery中实现同样的功能 --编辑如下-- 使用下面的代码进行了尝试,得到了如图所示的输出。可能出了什么问题 <Root> <Name>sampleName</Name> let

我对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>

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>