0

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

下面给出的是我正在使用的 XQuery 代码。我正在使用 XQuery 库来解析通过将 HTML 网页转换为 XML 获得的 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尝试提取具有 的网页 div 的内容,class="randomclass"其中包含文本“MatchingText”。

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

4

1 回答 1

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'
)
于 2012-08-06T10:10:34.270 回答