IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

Concaténation de sous-noeuds en XPATH


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Par défaut Concaténation de sous-noeuds en XPATH
    Bonjour et merci d'avance pour votre aide.

    Voilà mon problème. J'ai un fichier XML de la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <root>
      <infos>
        <dateEvenement>01/01/2013</dateEvenement>
        <lbEvenement>Evenement 1</lbEvenement>
        <personne>Robert Dupont</personne>
        <personne>Patrick Durand</personne>
      </infos>
    </root>
    Je traite la désérialisation en SQL sur une base SQL SERVER.
    J'ai besoin de générer une table de la forme :
    DateEvenement | LbEvenement | Details

    Le champ détails doit contenir la concaténation (mise en forme) de tous les noeuds personnes contenu dans le noeud infos.
    Ainsi dans mon exemple je devrais avoir :
    01/01/2013 | "Evenement 1" | "Robert Dupont et Patrick Durand"

    J'ai bien essayé de chercher sur le net et sur le forum Developpez.net une solution pour concaténer des sous-noeuds de cette manière mais sans grand succès.
    Au niveau du SELECT mon code SQL, j'ai ça pour l'instant :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT 
    	T.c.value('(dateEvenement/text())[1]', 'DATE') AS DateEvenenement
    	, T .c.value('(lbEvenement/text())[1]', 'NVARCHAR(MAX)') AS LbEvenement
    	, T .c.value('[XPATH DE CONCATENATION]', 'NVARCHAR(MAX)') AS Details
    FROM @XmlData.nodes('root/infos')

    Merci à vous

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    En principe concat() tout simplement ferait très bien l'affaire, mais bon, SQL Server et moi...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    , T .c.value('[XPATH DE CONCATENATION]', 'NVARCHAR(MAX)') AS Details
    Vous pouvez profiter le support de xquery là comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    , T c.query('
        (
        for $p in personne[position() != last()] 
        return
        concat($p, " et ")
        )
        , data(personne[position() = last()])
    ') AS Details
    Si le type de donnée sortant est critiquement important, rajoutez une fonction CAST() pour ce fin.

Discussions similaires

  1. [VB.net]Lecture xml vers dataset : prob avec sous noeuds
    Par Garrett dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/04/2007, 20h28
  2. [XPath] trouver le nom d'un sous noeud
    Par java_fun dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 16/03/2007, 14h50
  3. [XSLT]Trouver un noeud avec une condition sur ses sous-noeuds
    Par enguerran dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/02/2007, 11h00
  4. [C#][Débutant] Comment ajouter un sous noeud a un treeview
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/05/2006, 18h11
  5. [SQL] Concaténation et sous requete synchronisée
    Par Farwul dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/04/2006, 15h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo