2

我知道如何选择这样的属性:

$table/@id

但是,如果属性名称存储为变量,我该怎么做。例如:

let $x = "id"
$table/@[$x]
4

1 回答 1

3

您可以使用函数local-namenode-name捕获属性的值并将其与谓词匹配。local-name将简单地返回一个与元素名称匹配的字符串,node-name并将返回一个完全限定的名称,这通常是推荐的,但实际上,只有在处理命名空间时才需要。

let $x = "id"
return $table/@*[local-name(.) = $x]

let $x := xs:QName("id")
return $table/@*[node-name(.) = $x]
于 2015-12-01T17:06:05.483 回答