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 :

Dictionary à partir d'un dataset xml


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Par défaut Dictionary à partir d'un dataset xml
    Bonjour,

    j'ai un dataset que j'écris dans un fichier xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                DataSource.WriteXml("C:\test.xml", XmlWriteMode.WriteSchema)
                XMLSource = New StreamReader("C:\test.xml").ReadToEnd()
    dans lequel on peut trouver par exemple ceci :

    Code XML : 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
     
    <xs:element name="PROPRIETAIRES">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="ID" msdata:AutoIncrement="true"
          type="xs:int" />
          <xs:element name="Nom" minOccurs="0">
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:maxLength value="50" />
              </xs:restriction>
            </xs:simpleType>
          </xs:element>
          <PROPRIETAIRES>
            <ID>1</ID>
            <Nom>B</Nom>
            <Prenom>A</Prenom>
            <CP_ID>0</CP_ID>
            <PAYS_ISOCode>BE</PAYS_ISOCode>
          </PROPRIETAIRES>
          <PROPRIETAIRES>
            <ID>3</ID>
            <Nom>B</Nom>
            <Prenom>J</Prenom>
            <Rue>Rue Clémenceau</Rue>
            <Numero>2</Numero>
            <CP_ID>0</CP_ID>
            <PAYS_ISOCode>BE</PAYS_ISOCode>
          </PROPRIETAIRES>
        </xs:sequence>
      </xs:complexType>
    </xs:element>

    J'aimerais créer un Dictionary (key, value) mais je ne sais pas trop comment faire, j'ai fait ceci mais c'est incorrect

    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
    Dim DocumentXML As New XmlDocument()
            Dim params As IDictionary(Of String, String) = New Dictionary(Of String, String)
     
            DocumentXML.Load("C:\test.xml")
     
            Try
                For Each DataRow As dsPrintParams.PRINT_PARAMSRow In Me.PrintParams.dsBD.PRINT_PARAMS.Select("TEMPLATEName = '" & TemplateName)
                    Dim Root As XmlElement = DocumentXML.SelectSingleNode("dsUrbanisme")
                    Dim Items As XmlNodeList(Items = Root.SelectNodes("xs:element"))
                    For Each Item As XmlElement In Items
                        Dim Key As String = Item.GetAttribute("name")
                        Dim Value As String = Item.GetAttribute(" ")
                        params.Add(Key, Value)
                    Next
                Next
            Catch e As NullReferenceException
                MessageBox.Show(Err.Description)
            End Try
     
            Return params

  2. #2
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Bonjour,

    Dim Root As XmlElement = DocumentXML.SelectSingleNode("dsUrbanisme")
    Dim Value As String = Item.GetAttribute(" ")
    Il y a quelques lignes qui font que je n'ai pas trop compris ce que tu cherchais..

    Peut être que ce que tu veux c'est ça !?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            Dim params As New Dictionary(Of String, String)
            Dim attributeName As String = "name"
     
            Dim DocumentXML As New XmlDocument()
            DocumentXML.Load("C:\test.xml")
            Dim root As XmlElement = DocumentXML.DocumentElement
            For Each it As XmlElement In root.GetElementsByTagName("xs:element")
                Dim Key As String = attributeName
                Dim Value As String = it.GetAttribute(attributeName)
                params.Add(Key, Value)
            Next

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Par défaut
    Merci,

    j'ai une erreur
    Un élément avec la même clé a déjà été ajouté
    comment je peux voir les clés et les valeurs du dictionary ?

  4. #4
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Ah bah oui, j'avais pas pensé à ça (j'utilise rarement les Dictionary..).

    Par Dictionary, les clés doivent être uniques.. donc tu ne peux pas ajouter plusieurs keyValuePair avec la clé "name"..
    Si ton Dictionary concerne un seul "element", il n'y aura pas de problème, sinon il faut créer un Dictionary par "element"..

    A première vue, la solution du Dictionary semble un peu compliquée pour cette utilisation, peut être que ce serait plus simple de créer une classe correspondante..

    Pour voir les clés/valeurs ajoutées, tu peux te mettre en mode Debug et placer des points d'arrêt judicieusement dans ton code (F5 pour aller de point d'arrêt en point d'arrêt, F11 pour aller ligne par ligne)

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2012
    Messages : 90
    Par défaut
    Merci, Je reviens avec une autre question (je vais essayer de la poser clairement)

    Dans une base de données, j'ai plusieurs champs comme par exemple celui-ci

    DOSSIERS.DOSSIERS_DEMANDEURS.DEMANDEURS.NomComplet
    Grace à ça je dois aller rechercher dans mon document xml une valeur qui correspond pour la mettre dans le dictionary

    DOSSIER est un nom de balise
    DOSSIERS_DEMANDEURS est une relation
    DEMANDEURS est nom de balise mais il faut que je le retrouve d'après IDDEMANDEUR
    NomComplet est un nom de balise

    <DOSSIERS>
    <IDDEMANDEUR>248</IDDEMANDEUR>
    <msdata:Relationship name="DOSSIERS_DEMANDEURS" msdata:parent="DOSSIERS" msdata:child="DEMANDEURS" msdata:parentkey="IDDEMANDEUR" msdata:childkey="ID" />
    <DEMANDEURS>
    <ID>248</ID>
    <NomComplet>AAAA, AAaa</NomComplet>
    Comment puis-je faire ?

Discussions similaires

  1. Generer fichier XML a partir d'un dataset
    Par Nouka dans le forum C#
    Réponses: 3
    Dernier message: 22/08/2008, 10h13
  2. Ecrire un Xml à partir d'un dataset
    Par Julien1987 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/02/2007, 16h14
  3. [C#] creer un dataset a partir de plusieurs fichiers XML
    Par ager1912 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 16/05/2006, 18h17
  4. Réponses: 1
    Dernier message: 13/12/2005, 11h30
  5. [FLASH MX 2004 pro] DATASET, XML, ASP
    Par kenshi dans le forum Flash
    Réponses: 4
    Dernier message: 27/01/2004, 10h38

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