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

VB.NET Discussion :

ecrire dans un fichier XML à partirs d'un traitement excel


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 15
    Points
    15
    Par défaut ecrire dans un fichier XML à partirs d'un traitement excel
    Bonjour voila mon petit pb,

    PB : j'ai actuellement une BASE de données sous SQL server, avec 2 requetes je crée 2 dataset différents (l'un contenant des ID de personne + des roles associées, l'autre contenant l'ID de personnes + toutes leurs données relatives)

    Le but est de maxer le tout pour associer les roles avec ces personnes (certaines personnes peuvent avoir plusieurs roles)

    L'idée de depart etait d'ecrire le resultat dans un fichier excel (qui marche impecc )

    je vous link le code etape par etape :

    Connection a la base

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub ChargeTable(ByVal RqtCtc As String, ByVal TableName As String, ByVal DatasetCtc As System.Data.DataSet)
            Dim con As New SqlConnection()
            Dim sqlda As SqlDataAdapter
            con = New SqlConnection(con_strg)
            con.Open()
            sqlda = New SqlDataAdapter(RqtCtc, con)
            Try
                ' Récupération des données dans une table nomtable
                sqlda.Fill(DatasetCtc, TableName)
            Catch ex As Exception
                MsgBox(ex.ToString)
            Finally
                con.Close()
            End Try
        End Sub

    Création des dataset role et contacts


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
       Sub rapport_excel(ByVal requete As String, ByVal requete2 As String)
            Dim d As String = Format(Today, "yyyMMdd")
            Dim d2 As String = Format(Now, "HH-mm")
            'Création du DataSet contact
            Dim data As New Data.DataSet()
            Try
                ChargeTable(requete, "RECHERCHE", data)
            Catch ex As Exception
                MsgBox(ex.ToString)
                Exit Sub
            End Try
            'Ici on compte le nombre de lignes et de colonnes du datatable
            Dim NbRow As Integer = 0
            Try
                NbRow = data.Tables("RECHERCHE").Rows.Count
            Catch ex As Exception
            End Try
            Dim nbcol As Integer = data.Tables("RECHERCHE").Columns.Count
     
     
     
     
            'Création du DataSet role
            Dim data2 As New Data.DataSet()
            Try
                ChargeTable(requete2, "RECHERCHE", data2)
            Catch ex As Exception
                MsgBox(ex.ToString)
                Exit Sub
            End Try
            'Ici on compte le nombre de lignes et de colonnes du datatable
            Dim NbRow2 As Integer = 0
            Try
                NbRow2 = data2.Tables("RECHERCHE").Rows.Count
            Catch ex As Exception
            End Try
            Dim nbcol2 As Integer = data2.Tables("RECHERCHE").Columns.Count

    Ecriture de mes resultat dans un fichier excel :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
          Dim x As Integer
            Dim y As Integer
            Dim xlSheet As New Excel.Worksheet
            xlSheet = xlApp.Workbooks.Add.ActiveSheet
            xlSheet.Name = "Feuil1"
     
     
            For y = 0 To nbcol - 1
                For x = 0 To NbRow - 1
                    'En tête
                    xlSheet.Cells(1, y + 1) = data.Tables("RECHERCHE").Columns(y).ColumnName
                    'On rempli la case
     
     
                    xlSheet.Cells(x + 2, y + 1) = data.Tables("RECHERCHE").Rows(x).Item(y).ToString
     
                Next
                For x = 0 To NbRow - 1
     
                    xlSheet.Cells(x + 2, y + 16) = Rolexist(data.Tables("RECHERCHE").Rows(x).Item(y).ToString, data2)
     
                Next
            Next
     
            xlSheet.SaveAs("C:\" + d.ToString + " " + d2.ToString + ".xml")
            xlSheet = Nothing
            'On quitte l'application et on détruit les objets
            xlApp.Quit()
     
            xlApp = Nothing

    La fonctione "roleexist" qui permet de macther les deux dataset en utilisant les ID des personne et qui permet de rajouter une colonne "role" au dataset contact




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     Function Rolexist(ByVal Code As String, ByVal role As DataSet) As String
     
            Dim x As Integer
            Rolexist = ""
            Try
     
                For x = 0 To role.Tables("RECHERCHE").Rows.Count - 1
                    If Code = role.Tables("RECHERCHE").Rows(x).Item(0).ToString() Then
                        Rolexist += role.Tables("RECHERCHE").Rows(x).Item(1).ToString() + Chr(13)
                    End If
                Next
     
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            Return Rolexist
        End Function

    j'aimerais au lieu d'ecrire dans mes cellules excel ecrire dans un fichier XML,
    j'ai deja essayé la methode WriteXML pour les dataset mais elle ne me satisfait pas.
    J'aimerais le créer a la main avec des print#1 "[[CDATA etc...."

    si quelqu'un m'a compris je sollicite son aide

  2. #2
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Pour le faire à la main ce simple dans le boucle ou tu parcour ton Dataset et ajoute dans ton classeur excel tu ajout plutôt tes noeuds Xml dans un XmlWrite ou dans un string. pour le cas d'un string a la fin tu load le string dans un XmlDocument et tu Save celui-ci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim XmlString as string = "<root>";
    Dim XmlDoc as new XmlDocument();
        For y = 0 To nbcol - 1
          Dim Val as string = data.Tables("RECHERCHE").Columns(y).ColumnName
            For x = 0 To NbRow - 1
             XmlString += "<" & Val &">"& data.Tables("RECHERCHE").Rows(x).Item(y).ToString
    &"</" & Val & ">\r\n" 
          Next 
       Next
          XmlString += "</root>"
      XmlDoc.LoadXml(XmlString);
     XmlDoc.Save("XmlFile.xml")
    c'est pas ce qu'il ya de plus propre, à modifier et adapter à ton cas.

  3. #3
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    @lilroma :
    Pourquoi un XmlDocument si au final tu construit tout le XML dans une string ? Tu pourrais directement enregistrer ta string dans un stream.

    @Rhadawhisp:
    Je ne suis pas certain de comprendre ce que tu cherche à faire.
    Tu as créé deux DataSet contenants chacun une table, je comprend pas pourquoi tu mets pas les deux tables dans le même DataSet.
    Puisque tu as une connexion SQL, pourquoi tu ne fait pas une requête SQL pour trouver les données que tu cherches (ex: ton fonction Rolexiste) ?
    Quel intéret de mettre ca dans un fichier Excel et/ou un fichier xml ? Tes données sont issues d'une base, pourquoi les dupliquer et risquer en prime d'avoir a terme des données erronées car trop vieille ?

    Sinon, pour écrire du XML tu peux :
    1. créer une chaine contenant du XML comme lilroma l'a expliqué puis
    1.1 enregistrer directement cette chaine dans un fichier via un TextWriter
    1.2 créer un document XML et l'enregistrer (méthode de lilroma)
    2. créer un document XML (XmlDocument) et plutot que d'écrire le XML tu créer des objets (XmlElement, XmlAttribute, ...), puis tu l'enregistre.
    3. Utiliser un XmlWriter et utiliser ses méthodes (WriteCData, WriteStartElement, ....)
    4. Sérialiser le DataSet.

    Il doit y avoir encore d'autres méthodes plus ou moins valables.

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 15
    Points
    15
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     Dim xDoc As New XmlDocument
     
     
            Dim xPI As XmlProcessingInstruction
            Dim xElmntRoot As XmlNode
            Dim xElmntContent As XmlElement
            xPI = xDoc.CreateProcessingInstruction("xml", "version=1.0 encoding=ISO-8859-1 standalone=yes")
            xDoc.AppendChild(xPI)
            xElmntRoot = xDoc.CreateElement("Synthese")
            xDoc.AppendChild(xElmntRoot)
            Dim x As Integer
     
     
     
            Dim y As Integer
            For x = 0 To NbRow - 1
     
                For y = 0 To nbcol - 1
     
                    xElmntContent = xElmntRoot.AppendChild(xDoc.CreateElement(RemplaceSlash((data.Tables("RECHERCHE").Columns(y).ColumnName))))
                    xElmntContent.AppendChild(xDoc.CreateCDataSection(RemplaceSlash(data.Tables("RECHERCHE").Rows(x).Item(y).ToString)))
                    xElmntContent.AppendChild(xDoc.CreateCDataSection((RemplaceSlash(Rolexist(data.Tables("RECHERCHE").Rows(x).Item(y).ToString, data2)))))
                Next
            Next
     
     
     
     
     
            ' Save document
            xDoc.Save("C:\totototototo.xml")
    voila le code qui fonctionne comme je le voulais, j'ai pas pu repondre hier apres midi, j'me suis orienté vers la creation d'un XmlDocument

    par contre mon xml que je crée j'ai un truc qui ressemble a ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <synthese>
            <nom_de_mes_champ>attribut</nom_de_mes_champ>
             <nom_de_mes_champ>attribut</nom_de_mes_champ>
              <nom_de_mes_champ>attribut</nom_de_mes_champ>
               <nom_de_mes_champ>attribut</nom_de_mes_champ>
    </synthese>
    sauf que j'aimerais que ca fasse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <synthese>
           <record>
            <nom_de_mes_champ>attribut</nom_de_mes_champ>
             <nom_de_mes_champ>attribut</nom_de_mes_champ>
                </record>
                <record>
              <nom_de_mes_champ>attribut</nom_de_mes_champ>
               <nom_de_mes_champ>attribut</nom_de_mes_champ>
                </record>
    </synthese>

    avec le root et appendchild pas moyen de rajouter un noeud dans ma boucle... une idée ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    Bonjour

    C'est pas tres "propre" comme facon de faire.

    Voici un extrait de mon code, avec un peu de LinQ dedans.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim _Xdoc as new XDocument
    _Xdoc= <?xml version="1.0" encoding="ISO-8859-15"?>
               <Root></Root>
    _Xdoc.<Root>.Single.Add(<Element id=<%= _varId%> libelle=<%= _varLib%> />
    _Xdoc.Save("C:\test.xml")
    C'est tres succint comme exemple.

    Si tu veux d'autres info sur cette technique n'hesite pas a poser des questions.

    Nasty

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 15
    Points
    15
    Par défaut
    y'a pas moyen de derouler le schema XML de facon automatique ?

    genre
    <root>
    <parent>
    <enfant>attribut</enfant>
    </parent>
    </root>

    car le truc c'est juste rajouter un noeud ds ma boucle mais elle n'est jamais prise en compte :/

  7. #7
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Fait voir ton code

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 15
    Points
    15
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     Dim xDoc As New XmlDocument
     
     
            Dim xPI As XmlProcessingInstruction
            Dim xElmntRoot As XmlNode
            Dim xElmntContent As XmlElement
            Dim xElementRecord As XmlElement
     
            xPI = xDoc.CreateProcessingInstruction("xml", "version=1.0 encoding=ISO-8859-1 standalone=yes")
            xDoc.AppendChild(xPI)
            xElmntRoot = xDoc.CreateElement("Synthese")
     
            xDoc.AppendChild(xElmntRoot)
     
     
            Dim x As Integer
     
     
     
            Dim y As Integer
            For x = 0 To NbRow - 1
                xElementRecord = xDoc.CreateElement("Record")
                xElmntRoot.AppendChild(xElementRecord)
     
                For y = 0 To nbcol - 1
                    xElmntContent = xElementRecord.AppendChild(xDoc.CreateElement(RemplaceSlash((data.Tables("RECHERCHE").Columns(y).ColumnName))))
                    xElmntContent.AppendChild(xDoc.CreateCDataSection(RemplaceSlash(data.Tables("RECHERCHE").Rows(x).Item(y).ToString)))
                    xElmntContent.AppendChild(xDoc.CreateCDataSection((RemplaceSlash(Rolexist(data.Tables("RECHERCHE").Rows(x).Item(y).ToString, data2)))))
     
                Next
     
            Next
     
     
     
     
     
            ' Save document
            xDoc.Save("C:\totototototo.xml")
    resolu, le truc con de rajouter un noeud

  9. #9
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Salut,
    En fait j'ai un peu de mal a comprendre ce que tu veux que ton XML contienne et dans quelle arborescence.
    Ce que je lit ici ca donnerai :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <synthese>
        <nom_de_colonne>
            <![CDATA[ *valeur de la cellule* ]]>
            <![CDATA[ *valeur retournée par Rolexist pour cette cellule* ]]>
        </nom_de_colonne>
    </synthese>

    où nom_de_colonne est le nom d'une colonne dans Data.Tables("RECHERCHE"). Ce qui veux dire que le nom de la balise dépend du nom de la colonne ?!

    Bref, j'ai beaucoup de mal a comprendre pourquoi cette arborescence. C'est quasiment inexploitable.
    Il ne vaudrait pas mieux une arborescence telle que :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <synthese>
        <column name="nom_de_colonne">
            <ligne id="numero_de_ligne">
                <value><![CDATA[ *valeur de la cellule* ]]></value>
                <role><![CDATA[ *valeur retournée par la fonction rolexist * ]]></role>
            </ligne>
            <!-- Et ainsi de suite -->
        </column>
        <column name="nom_de_colonne2">
            <!-- et ainsi de suite -->
        </column>
    </synthese>

    Si oui, voici un code qui génère cette structure :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
            Dim xDoc As New XmlDocument
            Dim xPI As XmlProcessingInstruction = xDoc.CreateProcessingInstruction("xml", "version=1.0 encoding=ISO-8859-1 standalone=yes")
            Dim xElmntRoot As XmlNode
            xDoc.AppendChild(xPI)
            xElmntRoot = xDoc.CreateElement("synthese")    ' Création du noeud racine
            xDoc.AppendChild(xElmntRoot)
     
            Dim x As Integer
            Dim y As Integer
            Dim dt As DataTable = Data.Tables("RECHERCHE") ' On évite de provoquer la recherche de la table en permanence
     
            For x = 0 To nbCol - 1 ' Cette boucle parcourt les colonnes de la table (hé oui, quand tu regarde un tableau, l'axe X est celui des colonnes ^^'
                ' On créer un élément "column"
                Dim xColumn As XmlElement = xDoc.CreateElement("column")
                ' On créer l'attribut "name"
                Dim xName As XmlAttribute = xDoc.CreateAttribute("name")
                xName.Value = dt.Columns(x).ColumnName ' normalement pas besoin d'un RemplaceSlash puisque la valeur sera automatiquement encodée pour être valable en xml
                ' Place l'attribut sur le noeud
                xName.Attributes.Append(xName)
     
                For y = 0 To nbRow - 1 'Cette boucle parcourt les lignes
                    ' On créer un élément "ligne"
                    Dim xLigne As XmlElement = xDoc.CreateElement("ligne")
                    ' On créer l'attribut "id"
                    Dim xId As XmlAttribute = xDoc.CreateAttribute("id")
                    xId.Value = y.ToString()
                    xLigne.Attributes.Append(xId)
                    ' On créer l'élément "value"
                    Dim xValue As XmlElement = xDoc.CreateElement("value")
                    ' Création d'un CDATA pour la valeur
                    Dim strData As String = String.Empty
                    If dt.Rows(y)(x) IsNot Nothing Then strData = dt.Rows(y)(x).ToString() ' Je ne sais pas si c'est ton cas mais rien ne garantit que la cellule contienne quelque chose
                    Dim xValueData As XmlCDataSection = xDoc.CreateCDataSection(strData)
                    xValue.AppendChild(xValueData) ' Ajoute le CData dans l'élément "value"
                    xLigne.AppendChild(xValue) ' Ajoute l'élément "value" dans l'élément "ligne"
                    ' On créér l'élément "role"
                    Dim xRole As XmlElement = xDoc.CreateElement("role")
                    ' Création d'un CDATA pour la valeur
                    strData = Rolexist(strData, data2) ' Rappel, à ce moment strData contient déjà la valeur de dt.Rows(y)(x).ToString()
                    xValueData = xDoc.CreateCDataSection(strData)
                    xRole.AppendChild(xValueData) 'Ajoute le CData dans l'élément "role"
                    xLigne.AppendChild(xRole) ' Ajoute l'élément "role" dans l'élément "ligne"
                    xColumn.AppendChild(xLigne)    ' Ajoute l'élément "ligne" dans l'élément "column"
                Next
                xElmntRoot.AppendChild(xColumn)    ' Ajoute l'élément "column" dans l'élément "synthese"
            Next

  10. #10
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 15
    Points
    15
    Par défaut
    le nom de la balise depend bien du nom de la colonne

  11. #11
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Je n'en comprend pas l'intérêt mais bon, si c'est ce dont tu as besoin, tu peux adapter mon code en supprimant l'attribut name et en plaçant la valeur directement en guise de nom de l'élément xColumn.

  12. #12
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 15
    Points
    15
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
         Dim y As Integer
            For x = 0 To NbRow - 1
                xElementRecord = xDoc.CreateElement("Record")
                xElmntRoot.AppendChild(xElementRecord)
     
                For y = 0 To nbcol - 1
                    'j'ecris l'en-tete
                    xElmntContent = xElementRecord.AppendChild(xDoc.CreateElement(RemplaceSlash((data.Tables("RECHERCHE").Columns(y).ColumnName))))
     
     
                    If y = 9 Then
     
                        xElmntContent.AppendChild(xDoc.CreateCDataSection((RemplaceSlash(Rolexist(data.Tables("RECHERCHE").Rows(x).Item(9).ToString, data2)))))
     
                    Else
                        'j'ecris le record
                        xElmntContent.AppendChild(xDoc.CreateCDataSection(RemplaceSlash(data.Tables("RECHERCHE").Rows(x).Item(y).ToString)))
                    End If
                Next
     
     
            Next
    voila le code propre avec un pti test pour remplacer la valeur de la colonne 9 par la valeur retourné par rolexist

    extrait de la requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT p_ctc.ctcincde,
    p_cpy.CpyExCde,
    p_cpy.CpyTrdNamDsc, 
    r_dty.DtyDsc, 
    p_cpyaddr.CpyAddrExCde,
    p_ctc.CtcNamDsc,
    p_ctc.CtcFstNamDsc,
    p_ctc.CtcPhnNum,
    p_ctc.CtcMailNum,
    p_ctc.ctcincde as Roles
    pour mon pb de duplication de Cdata et de duplication de donnée 'etait du a ma boucle foireuse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?>
    <Synthese>
      <Record>
        <ctcincde><![CDATA[10000942]]></ctcincde>
        <CpyExCde><![CDATA[BLABLA]]></CpyExCde>
        <CpyTrdNamDsc><![CDATA[BLABLA]]></CpyTrdNamDsc>
        <DtyDsc><![CDATA[TOTO]]></DtyDsc>
        <CpyAddrExCde><![CDATA[TATA]]></CpyAddrExCde>
        <CtcNamDsc><![CDATA[bibi]]></CtcNamDsc>
        <CtcFstNamDsc><![CDATA[Robert]]></CtcFstNamDsc>
        <CtcPhnNum><![CDATA[01.2.3.3.4.5.6]]></CtcPhnNum>
        <CtcMailNum><![CDATA[toto@toto.com]]></CtcMailNum>
        <Roles><![CDATA[role1
    role2
    ]]></Roles>
      </Record>

    le xml en sortie ressemble a ca

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH 8] Ecrire dans un fichier xml
    Par dom_dev dans le forum Flash
    Réponses: 9
    Dernier message: 26/09/2006, 10h10
  2. Lire/Ecrire dans un fichier .xml depuis Java
    Par SkyBioSS dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 16/05/2006, 17h38
  3. <xml><asp.net> Ecrire dans un fichier xml
    Par kenkine dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 24/03/2006, 11h17
  4. Ecrire dans un fichier a partir du bash
    Par jamesleouf dans le forum Linux
    Réponses: 1
    Dernier message: 20/03/2006, 16h00
  5. Insertion dans un fichier xml à partir d'un xsl
    Par alexandre54 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 21/03/2003, 09h45

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