xquery初学者-如何在FLWOR语句中使用if-then-else
我想使用XQuery从网页的XML等价物中提取一些内容 这里,我想使用if-then-else——如果满足特定条件,那么xquery表达式将返回一个值,否则将返回另一个值 这是我的表达方式-- 我正在努力从网页中提取一些内容 下面是我使用的Xquery代码--我使用Xquery库解析XML,XML是通过将HTML网页转换为XML获得的…之后,我从该XML页面提取一些特定内容xquery初学者-如何在FLWOR语句中使用if-then-else,xquery,flwor,Xquery,Flwor,我想使用XQuery从网页的XML等价物中提取一些内容 这里,我想使用if-then-else——如果满足特定条件,那么xquery表达式将返回一个值,否则将返回另一个值 这是我的表达方式-- 我正在努力从网页中提取一些内容 下面是我使用的Xquery代码--我使用Xquery库解析XML,XML是通过将HTML网页转换为XML获得的…之后,我从该XML页面提取一些特定内容 declare variable $doc as node() external;
declare variable $doc as node() external;
let $select_block := $doc//div[@class="randomclass" and contains(.,'MatchingText')]
for $select_link in $select_block/a
for $select_link_url in $select_link/@href
where contains($assignee_link_url,'inassignee')
return data($select_link)
现在如何在这个表达式中使用if-then-else
我试图在“return”关键字之后立即添加if-then,但我得到了一个错误。。。
基本上,如果在上面的$select\u块中找到了一些内容,那么应该返回数据($select\u link),否则应该返回静态文本“Missing Value”
在上面的xquery表达式中使用if-then-else的正确方法是什么?如果我理解了您要正确实现的目标,那么下面的方法应该有效:
declare variable $doc as node() external;
let $select_block := $doc//div[@class="randomclass" and contains(.,'MatchingText')]
return
if ($select_block) then
for $select_link in $select_block/a
for $select_link_url in $select_link/@href
where contains($select_link_url,'inassignee')
return data($select_link)
else 'Missing Value'
您可以稍微简化一些,并消除嵌套for循环,使用谓词过滤器选择锚元素:
declare variable $doc as node() external;
let $select_block := $doc//div[@class="randomclass" and contains(.,'MatchingText')]
return
if ($select_block) then
for $select_link in $select_block/a[@href[contains(., 'inassignee')]]
return data($select_link)
else 'Missing Value'