2011-02-08 6 views
2

J'ai un élément div Je veux diviser en XQuery
Mon départSéparer les chaînes séparées par des virgules dans xquery?

<tags>{for $tag in //div[@id='tags'] 
return 
    <tag>{$tag}</tag>}</tags> 

L'objectif est de convertir cette

<div id="tags">Tagged: tag1, TAG2, tag3</div> 

Le résultat attendu est

<tags><tag>tag1</tag><tag>TAG2</tag><tag>tag3</tag></tags> 
+0

Qu'est-ce que vous exécutez cette expression xquery? Dans TSQL j'obtiens le bon résultat ... la seule différence est pas de sauts de ligne et de guillemets dans 'pour $ tag dans // div [@ id =" tags "]' – kelloti

+0

toujours en train d'obtenir '

Tagged: tag1, TAG2, tag3
' . Qu'attendez-vous? – kelloti

+0

J'attends ' balise1 TAG2 tag3' – Moak

Répondre

6

Supposedly vous pouvez utilisez la fonction tokenize(string, pattern) pour diviser des chaînes en fonction d'un motif. SQL Server 2008 n'a pas la fonction, mais cela pourrait être votre réponse Si tout ce que vous utilisez le fait. J'imagine que cela ressemblerait à ceci si je pouvais le faire fonctionner:

<tags>{ 
    for $tag in tokenize(
       substring-after(
        (//div[@id='tags'])[1], 
        'Tagged:' 
       ), 
       ',' 
       ) 
    return 
    <tag>{ 
     normalize-space($tag) 
    }</tag> 
}</tags> 
+0

cool, heureux il a travaillé – kelloti

Questions connexes