我正在努力从网页中提取一些内容。
以下是我正在使用的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表达式中没有为选择返回值的情况,这样我就可以标记一个标志,告诉用户没有找到这个值。
答案 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'
)