1

我可以在 xquery 中使用类似以下的内容吗?基本上我想使用字符串变量作为标签。我正在使用网络收获来提取数据。任何帮助或指针表示赞赏。

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>
4

2 回答 2

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] }
于 2013-11-12T09:30:52.233 回答
2

是的,这可以通过元素 {} 构造实现:

return element {$tag} {$doc//div[@class=details]//tr[1]/td[2]}
于 2013-11-12T09:26:53.360 回答