xquery beginner-当xml中没有该变量的内容时,如何为变量赋予特定的默认值

时间:2012-08-06 09:55:48

标签: xquery

我正在努力从网页中提取一些内容。

以下是我正在使用的XQuery代码。我正在使用XQuery库来解析XML,这是通过将HTML网页转换为XML而获得的。之后,我将从该XML页面中提取一些特定内容:

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)

从上面,您可以看到变量$select_block尝试提取具有class="randomclass"的网页div的内容,其中包含文本“MatchingText”。

现在,如果相关网页不包含此类块,那么如何返回$select_link的默认值?基本上,我想解决在XQuery表达式中没有为选择返回值的情况,这样我就可以标记一个标志,告诉用户没有找到这个值。

1 个答案:

答案 0 :(得分:0)

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($assignee_link_url,'inassignee')  
  return data($select_link)
) else (
  'default value'
)