Я знаю, как выбрать такой атрибут:
$table/@id
Однако как мне это сделать, если имя атрибута хранится как переменная. Например:
let $x = "id"
$table/@[$x]
Я знаю, как выбрать такой атрибут:
$table/@id
Однако как мне это сделать, если имя атрибута хранится как переменная. Например:
let $x = "id"
$table/@[$x]
Вы можете использовать функции 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
- person Yahya Uddin; 01.12.2015
let $x := "foo" return $table/$x
- person Yahya Uddin; 01.12.2015