2008-11-27 11 views
4

Si j'ai plusieurs éléments Section dans un document XML, quelle XQuery est-ce que j'utilise pour obtenir une liste de toutes les valeurs name?XQuery pour obtenir la liste des attributs

<Section name="New Clients" filePath="XNEWCUST.TXT" skipSection="False"> 

Répondre

5

Dans XPath 2.0 (qui est un sous-ensemble de XQuery) que l'on peut utiliser l'expression suivante pour obtenir une séquence de toutes les valeurs de chaîne du « nom » attributs des éléments « section »:

for $attr in //Section/@name 
return string($attr) 

Prenez note que l'utilisation de l'abréviation « // » est généralement une mauvaise pratique, car cela peut nécessiter un ensemble (sous-arbre) à parcourir. Dans tous les cas où la structure du document est connue, une expression XPath plus spécifique (telle qu'une expression utilisant des étapes de localisation spécifiques) devrait être préférée.

+1

Merci, tout ce dont j'avais besoin était un retour concat (string ($ attr), "-") pour délimiter les valeurs. – ProfK

0
/Section/@name 
+1

Cela permet de sélectionner le nœud d'attribut « nom » du seul élément supérieur du document XML, si l'élément supérieur arrive à être un élément "Section". Ce que l'OP voulait, c'est la séquence des * valeurs de chaîne * des attributs "name" des éléments * all * "Section" dans le document XML. –

1
//Section/@name 

ou

//Section/@name/string(.) 

pour la chaîne des valeurs

Questions connexes