【发布时间】:2015-12-01 16:57:07
【问题描述】:
我知道如何选择这样的属性:
$table/@id
但是,如果属性名称存储为变量,我该怎么做。例如:
let $x = "id"
$table/@[$x]
【问题讨论】:
标签: xml xpath xquery saxon xquery-3.0
我知道如何选择这样的属性:
$table/@id
但是,如果属性名称存储为变量,我该怎么做。例如:
let $x = "id"
$table/@[$x]
【问题讨论】:
标签: xml xpath xquery saxon xquery-3.0
您可以使用函数local-name 或node-name 来捕获属性的值并将其与谓词匹配。 local-name 将简单地返回一个与元素名称匹配的字符串,node-name 将返回一个完全限定的名称,这通常是推荐的,但实际上,只有在处理命名空间时才需要。
let $x = "id"
return $table/@*[local-name(.) = $x]
let $x := xs:QName("id")
return $table/@*[node-name(.) = $x]
【讨论】:
$table/$x
let $x := "foo" return $table/$x