如何通过 xquery 中的变量 select 属性?
How to select an attribute by a variable in xquery?
我知道如何 select 像这样的属性:
$table/@id
但是,如果属性名称存储为变量,我该怎么做。例如:
let $x = "id"
$table/@[$x]
您可以使用函数 local-name
或 node-name
来捕获属性的值并将其与谓词匹配。 local-name
将简单地 return 一个匹配元素名称的字符串,而 node-name
将 return 一个完全限定的名称,这通常是推荐的,但实际上,只有在以下情况下才需要您正在处理命名空间。
let $x = "id"
return $table/@*[local-name(.) = $x]
let $x := xs:QName("id")
return $table/@*[node-name(.) = $x]
我知道如何 select 像这样的属性:
$table/@id
但是,如果属性名称存储为变量,我该怎么做。例如:
let $x = "id"
$table/@[$x]
您可以使用函数 local-name
或 node-name
来捕获属性的值并将其与谓词匹配。 local-name
将简单地 return 一个匹配元素名称的字符串,而 node-name
将 return 一个完全限定的名称,这通常是推荐的,但实际上,只有在以下情况下才需要您正在处理命名空间。
let $x = "id"
return $table/@*[local-name(.) = $x]
let $x := xs:QName("id")
return $table/@*[node-name(.) = $x]