2010-06-24 30 views

Répondre

0

Réponse courte: non.

Une expression de chemin requiert une NameTest littérale. Il n'y a pas moyen de contourner cela. Certaines implémentations peuvent fournir une fonction d'évaluation, par exemple eval(concat("$doc/@", $targetAtt)) mais, en général, cela doit être évité si cela peut être aidé.

La seule façon de ranger la syntaxe dans XQuery de vanille est une fonction définie par l'utilisateur:

declare function local:attribute($node as node(), $name as xs:QName) 
{ 
    $node/@*[name(.) = $name] 
}; 

local:attribute($doc, $targetAtt)