是否可以在xquery中使用字符串变量作为标记

时间:2013-11-12 08:50:54

标签: xquery webharvest

我可以在xquery中使用类似的内容吗?基本上我想使用字符串变量作为标记。我正在使用web harvest来提取数据。任何帮助或指示赞赏。

declare variable $doc as node() external;
declare variable $tag as xs:string;
let $tag := $doc//div[@class=details]//tr[1]/td[1]
return 
    <$tag>{$doc//div[@class=details]//tr[1]/td[2]</$tag>

2 个答案:

答案 0 :(得分:3)

使用元素构造函数element { $tag } { $content }

您的查询还有两个问题:

  • 无需将$tag声明为变量,无论如何都要将其隐藏
  • 在结束标记前面缺少关闭花括号

除了在元素构造函数的标记名称字段中不支持变量名的MSSQL外,此代码应该可以在所有内容中使用:

declare variable $doc as node() external;

let $tag := $doc//div[@class=details]//tr[1]/td[1]
return 
    element { $tag } { $doc//div[@class=details]//tr[1]/td[2] }

答案 1 :(得分:2)

是的,可以使用元素{}构造:

return element {$tag} {$doc//div[@class=details]//tr[1]/td[2]}