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 :

patauge avec XML [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technical Team Leader
    Inscrit en
    Avril 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technical Team Leader
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 235
    Par défaut patauge avec XML
    bonjour,

    je patauge dans la semoule, voici mon fichier XML:

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <news xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <newsItem>
          <id>9998</id>
          <visible>true</visible>
          <firstName>S</firstName>
          <middleName>T</middleName>
          <lastName>L</lastName>
          <title>Actu</title>
          <dates>2011/11/10T10:52:00.0Z</dates>
          <content>Encore</content>
          <imageUrl>membres/pictmembre05.jpg</imageUrl>
          <imageAltText>The coach</imageAltText>
        </newsItem>
        <newsItem>
          <id>9999</id>
          <visible>true</visible>
          <firstName>J</firstName>
          <middleName>T</middleName>
          <lastName>V</lastName>
          <title>Besoin de vous</title>
          <dates>2011/07/10T10:17:00.0Z</dates>
          <content>création</content>
          <imageUrl>joueurs/pictjoueur1.jpg</imageUrl>
          <imageAltText>j - joueur</imageAltText>
        </newsItem>
    </news>
    c'est un fichier que je souhaite obtenir, pour cela voici mon code:

    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
    40
    41
    42
    43
    44
    45
    46
    47
     
    Public Shared Function Serializefile(ByVal filename As String) As news
            Dim item As New news
            Dim serializer As New XmlSerializer(GetType(news))
            Dim writer As New StreamWriter(filename)
            Try
                Dim listitemx As New newsItem
                Dim listitem As New List(Of newsItem)
                'je recherche la structure donc je reglerais apres le stockage dans une liste
                For i As Integer = 0 To 1
                    If i = 0 Then
                        listitemx.id = 9998
                        listitemx.visible = "true"
                        listitemx.firstName = "S"
                        listitemx.middleName = "T"
                        listitemx.lastName = "L"
                        listitemx.title = "Actu"
                        listitemx.dates = "2011/11/10T10:52:00.0Z"
                        listitemx.content = "Encore"
                        listitemx.imageUrl = "membres/pictmembre05.jpg"
                        listitemx.imageAltText = "The coach"
                    Else
                        listitemx.id = 9999
                        listitemx.visible = "true"
                        listitemx.firstName = "J"
                        listitemx.middleName = "T"
                        listitemx.lastName = "V"
                        listitemx.title = "Besoin de vous"
                        listitemx.dates = "2011/07/10T10:17:00.0Z"
                        listitemx.content = "création"
                        listitemx.imageUrl = "joueurs/pictjoueur1.jpg"
                        listitemx.imageAltText = "john - joueur"
                    End If
     
                    listitem.Add(listitemx)
                Next
     
                item.newsItem = listitem
     
                serializer.Serialize(writer, item)
                writer.Close()
     
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
     
        End Function
    et mes classes :

    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
     
    Public Class news
        Public newsItem As List(Of newsItem)
    End Class
     
    Public Class newsItem
     
        Public id As String
        Public visible As String
        Public firstName As String
        Public middleName As String
        Public lastName As String
        Public title As String
        Public dates As String
        Public content As String
        Public imageUrl As String
        Public imageAltText As String
     
    End Class
    Le problème c'est que j'obtiens 3 branches :

    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
    <?xml version="1.0" encoding="utf-8"?>
    <news xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <newsItem>
        <newsItem>
          <id>9999</id>
          <visible>true</visible>
          <firstName>J</firstName>
          <middleName>T</middleName>
          <lastName>V</lastName>
          <title>Besoin de vous</title>
          <dates>2011/07/10T10:17:00.0Z</dates>
          <content>création</content>
          <imageUrl>joueurs/pictjoueur1.jpg</imageUrl>
          <imageAltText>j - joueur</imageAltText>
        </newsItem>
        <newsItem>
          <id>9999</id>
          <visible>true</visible>
          <firstName>J</firstName>
          <middleName>T</middleName>
          <lastName>V</lastName>
          <title>Besoin de vous</title>
          <dates>2011/07/10T10:17:00.0Z</dates>
          <content>création</content>
          <imageUrl>joueurs/pictjoueur1.jpg</imageUrl>
          <imageAltText>j - joueur</imageAltText>
        </newsItem>
      </newsItem>
    </news>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="utf-8"?>
    1<news xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    2  <newsItem>
    3    <newsItem>
        </newsItem>
        <newsItem>
        </newsItem>
      </newsItem>
    </news>
    alors que je souhaite avoir 2 branches
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="utf-8"?>
    1<news xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    2  <newsItem>
        </newsItem>
        <newsItem>
        </newsItem>
    </news>
    bon après je sais j'ai un petit probleme il fau que je crais une liste pour stocker les "listitemx", je le ferais après...

    si quelqu'un peu m'aider et aussi pour déserialiser je souhaite mettre chaque <newsItem> dans une list de variable, mais là je suis out...

    merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Technical Team Leader
    Inscrit en
    Avril 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technical Team Leader
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2010
    Messages : 235
    Par défaut
    Bon voici la méthode que j'utilise du coup pour les fichier XML :

    voici le fichier type xml

    '<lstSite>
    ' <SITE>
    ' <URL>http://www.peuw.net/index.xml</URL>
    ' <NOM>peuw.net</NOM>
    ' </SITE>
    ' <SITE>
    ' <URL>http://www.poxx.net/index.xml</URL>
    ' <NOM>poxx - Science Fair</NOM>
    ' </SITE>
    ' <SITE>
    ' <URL>http://www.nacara.net/weblog/rss.php</URL>
    ' <NOM>nacara</NOM>
    ' </SITE>
    ' <SITE>
    ' <URL>http://xmlfr.org/actualites/general.rss10 </URL>
    ' <NOM>xmlfr.org</NOM>
    ' </SITE>
    '</lstSite>
    Pour lire un fichier XML :
    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
    40
    41
    42
    43
     
    Private TabSite(), lst(), files(,) As String
        Imports System.Xml
     
        Private Sub chargeListeSite()
            'lecture du fichier Xml contenant la liste des sites
            Dim XmlDoc As XmlDocument = New XmlDocument()
            XmlDoc.Load(Application.StartupPath & "\Newsite.XML")
     
            Dim element As XmlNodeList
            Dim noeud As XmlNode
            Dim noeudEnf As XmlNode
            Dim NomSite, UrlSite As String
            Dim cpt As Integer = 0
            '****recupere les elements du tag "SITE" et redimentionne
            'le tableau memoire qui va contenir les urls des sites
            element = XmlDoc.DocumentElement.GetElementsByTagName("SITE")
            ReDim TabSite(element.Count)
            ReDim lst(element.Count)
            ReDim files(element.Count, element.Count)
     
            'pour tout les noeuds present dans l'element "SITE"
            'on recupere le nom et l'url
            For Each noeud In element
                For Each noeudEnf In noeud.ChildNodes
                    If noeudEnf.LocalName = "URL" Then
                        UrlSite = noeudEnf.InnerText
                    ElseIf (noeudEnf.LocalName = "NOM") Then
                        NomSite = noeudEnf.InnerText
                    End If
                Next
                'affichage des données
                lst(cpt) = NomSite 'Lst.Items.Add(NomSite)
                files(0, cpt) = NomSite
                TabSite(cpt) = UrlSite
                files(0, cpt) = NomSite
                cpt += 1
            Next
            'se postionne sur le premier article du site
            'et le lit
            'Lst.Text = Lst.Items.Item(0)
     
        End Sub
    Pour ecrire un fichier XML :
    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
     
        '/////////SAUVEGARDE DE LA LISTE DES SITES EN XML\\\\\\\\\\\\\\\\\\
        '               (creation d'un shema)
        Private Sub SaveListeSite()
            Dim XmlDoc As XmlDocument = New XmlDocument()
            'creation du document
            XmlDoc.LoadXml("<lstSite></lstSite>")
     
            Dim i As Integer
            For i = 0 To lst.Count - 1
                'creation de l'element parent qui va contenir les elements enfants
                Dim elemSite As XmlElement
                elemSite = XmlDoc.CreateElement("SITE")
                'creation de l'element url (enfant)
                Dim elemUrl As XmlElement
                elemUrl = XmlDoc.CreateElement("URL")
                elemUrl.InnerText = TabSite(i)
                'creation de l'element Nom (enfant)
                Dim elemNom As XmlElement
                elemNom = XmlDoc.CreateElement("NOM")
                elemNom.InnerText = lst(i)
                'ajout des 2 balise enfants a l'element parent en cours
                elemSite.AppendChild(elemUrl)
                elemSite.AppendChild(elemNom)
                'on ajoute la balise parent au document
                XmlDoc.DocumentElement.AppendChild(elemSite)
            Next i
            'on ecrit le XML
            XmlDoc.Save(Application.StartupPath & "\Newsite.XML")
            MsgBox("Enregistrement réussi")
        End Sub
    __________________
    Si mon message a été utile - Si je suis à côté de la plaque - Quand vous avez la réponse à votre question .

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

Discussions similaires

  1. [FLASH MX] Probleme avec XML
    Par celina5880 dans le forum Flash
    Réponses: 4
    Dernier message: 16/12/2004, 19h30
  2. Feuille de style avec XML (pour expert !)
    Par jer_the_one dans le forum Composants VCL
    Réponses: 8
    Dernier message: 11/08/2004, 08h48
  3. Gestion de formulaire avec xml et sans serveur ?
    Par meliane dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 05/05/2004, 19h57
  4. Comment réaliser des modèles de documentations avec XML ?
    Par Dams76 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 29/08/2003, 02h15
  5. Tree View avec XML et XSL
    Par Drooxy dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 22/04/2003, 10h21

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