2010-12-14 71 views
1

J'ai une chaîne et je veux l'utiliser comme un sélecteur dans xpath pour sélectionner un noeud avec le nom comme valeur de la chaîne.chaîne dans xpath

declare variable $get_count := <count><comedy>1</comedy></count>; 
(: $string = "comedy" :) 
let $value = $get_count/$string (: but this doesn't return anything) 

Comment dois-je faire?

+0

Bonne question, +1 Voir ma réponse une solution facile et immédiate. :) –

Répondre

2
let $value = $get_count/$string (: but this doesn't return anything) 

Utilisation:

declare variable $get_count := <count><comedy>1</comedy></count>; 
declare variable $string := "comedy"; 

let $value := $get_count/*[name()=$string] 
    return 
    $value 

Lorsque cela est appliqué sur tout document XML (non utilisé), le résultat voulu, correct produit:

<comedy>1</comedy> 
+0

So $ get_count contient le noeud d'élément '', pas un noeud de document racine? – LarsH

+0

@LarsH: Oui, j'ai testé cela avec Saxon sous oXygen12. –

+0

Merci beaucoup, ça a marché .. !! – deepti