begin process at 2010 02 10 17:35:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

XML

 > 

modifier un fichier xml


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

modifier un fichier xml

lundi 4 février 2008 à 09:34:33 | modifier un fichier xml

DiamonDonald

Bonjour,

Je débarque sous vb et xml et j'ai un petit problème. je dois pouvoir modifier un fichier xml (certains paramètres bien précis) mais je ne vois pas trop comment je pourrai faire à partir de vb.net. j'aurai bien une idée du genre: rechercher dans le fichier, en le parcourant du début à la fin, et remplacer ou ajouter aux endroits qu'il faut mais je ne vois pas comment je peux faire...

Quelqu'un pourrait m'aider SVP?
lundi 4 février 2008 à 10:49:27 | Re : modifier un fichier xml

Renfield

Administrateur CodeS-SourceS
Réponse acceptée !

voir espace de nom XML

[ Lien ]=



Renfield
Admin CodeS-SourceS- MVP Visual Basic
lundi 4 février 2008 à 10:59:33 | Re : modifier un fichier xml

DiamonDonald

ok merci je vais voir ça et vous tiens au courant.
lundi 4 février 2008 à 11:19:11 | Re : modifier un fichier xml

Kevin.Ory

Salut,

' 1° Ouvrir le document XML:
Dim Doc as Xml.XmlDocument
Doc.Load("C:\Fichier.xml")

' 2° Faire les modifs


' 3° Enregister le document
Doc.Save("C:\Fichier.xml")
lundi 4 février 2008 à 15:11:13 | Re : modifier un fichier xml

DiamonDonald

merci pour vos réponses. j'ai trouvé mon bonheur ici :
http://www.vbfrance.com/codes/APPLICATION-LIRE-FAIRE-AJOUT-DANS-FICHIER-XML_30680.aspx

toutefois il me reste d'autres petites questions.

Donc j'arrive maintenant à ouvrir et lire mon fichier XML mais la lecture s'effectue dans des MsgBox, et pour passer tous les éléments il me faut cliquer à chaque fois sur le bp "OK". Il n'y aurait pas une autre commande qui permet l'affichage mais avec une barre de défilement, par exemple?
Ou alors, le fichiers XML que j'utilise comporte plusieurs "sections", est-il possible d'y accéder directement plutot que d'afficher  la totalité du code?

Merci d'avance !
lundi 4 février 2008 à 18:14:51 | Re : modifier un fichier xml

Kevin.Ory

Réponse acceptée !
Je comprend pas. Qu'appel-tu lire un XML dans une MsgBox?

Je te met un exemple complet partant de mon message précédent:

1. On a le fichier XML suivant:

<?xml version="1.0" encoding="utf-8" ?>
<bdd>
    <voiture>
        <item poid="0.9 tonne" puissance="260 ch">Ferrari</item>
        <item poid="1.2 tonne" puissance="210 ch">Renault</item>
        <item poid="1.1 tonne" puissance="180 ch">Toyota</item>
    </voiture>
    <camion>
        <item poid="13 tonnes" puissance="150 ch">Iveco</item>
        <item poid="18 tonnes" puissance="170 ch">Renault</item>
    </camion>
</bdd>


2. On créé une Form avec:

Un ComboBox qui servira à choisir entre voiture et camion
Une ListView avec 3 collones qui permetra d'afficher les voitures ou les camions
Un Button qui permetra de changer le poid d'un véhicule

3. Et on ajoute ce code:

' Le document XML
Private doc As New Xml.XmlDocument  

' Chargement de Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' Charger le document XML
    doc.Load("C:\essai.xml")

    ' Ajouter les sections enfants du document à la ComboBox (dans notre cas, voiture et camion)
    For Each elem As Xml.XmlElement In doc.DocumentElement
        ComboBox1.Items.Add(elem.Name)
    Next
End Sub

' Sélection d'un élément de ComboBox1
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    ' Nettoyer la liste ListView1  
    ListView1.Items.Clear()

    ' Parcourir les enfants de la section sélectionné dans la ComboBox1
    For Each elem As Xml.XmlElement In doc.DocumentElement(ComboBox1.Text).ChildNodes
        Dim item As ListViewItem = ListView1.Items.Add(elem.InnerText)   ' Nom de la voiture
        item.SubItems.Add(elem.GetAttribute("poid"))                                   ' Poid
        item.SubItems.Add(elem.GetAttribute("puissance"))                           ' Puissance
    Next
End Sub

' Clique sur le bouton
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' Vérifier qu'un élément est sélectionné dans la ListView1
    If ListView1.SelectedItems.Count > 0 Then

       ' Afficher un InputBox pour spécifier la nouvelle valeur du poid
        Dim res As String = InputBox("Entrer le poid de ce véhicule:" & vbCrLf & vbCrLf & ListView1.SelectedItems(0).Text)
        If res <> "" Then
            ' Retrouver l'élément XML correspondant à la sélection dans ComboBox1 et ListView1
            ' Cette fois ci on accède aux éléments par index , pas par le nom comme dans la
            ' procédure
ComboBox1_SelectedIndexChanged (les 2 solutions sont possible)
            Dim elem As Xml.XmlElement = doc.DocumentElement.ChildNodes(ComboBox1.SelectedIndex).ChildNodes(ListView1.SelectedIndices(0))
            ' On modifie l'attribut "poid" de l'élément du document XML
            elem.SetAttribute("poid", res & " tonnes")
            ' Egalement modifier l'élément de la ListView1
            ListView1.SelectedItems(0).SubItems(1).Text = res & " tonnes"
            ' Enregistrer les modifications du document XML
            doc.Save(
"C:\essai.xml")
        End If

    End If
End Sub

4. Ce qui donne:

http://img145.imageshack.us/img145/8997/sanstitrezf0.jpg


5. Conclusion:

On a vu comment
- ouvrir et enregistrer un document XML
- accéder au éléments de la structure XML (nodes) soit par nom, soit par index
- lire et modifier des attributs/valeurs d'éléments

J'espère que ca te sera utile
mardi 5 février 2008 à 09:41:16 | Re : modifier un fichier xml

DiamonDonald

merci beaucoup, cela me sera très utile car c'est un très bon exemple et simple à comprendre.

mercredi 6 février 2008 à 16:40:06 | Re : modifier un fichier xml

DiamonDonald

en recherchant encore sur le net, j'ai vu que l'on pouvait accéder aux éléments par la synthaxe "XPath", mais comment ça marche? j'ai regardé des tuto mais je comprend pas comment l'utiliser... j'ai du mal à me mettre dans le bain
jeudi 7 février 2008 à 10:58:41 | Re : modifier un fichier xml

DiamonDonald

Bonjour

j'ai tout de même un problème lors de la lecture des attributs de mon fichier XML

voici la structure d'un petit morceau du fichier :

    <IOConf>
        <PLC autoRun="true" MWInitZero="true" numberInternalWord="32464" numberConstantWord="20" numberInternalBit="16250">
         </PLC>
    </IOConf>

dans mon code j'utilise la même méthode que Kevin.Ory c'est à dire, à l'ouverture de mon fichier XML, lister les éléments dans une comboBox et lors de la sélection d'un de ces éléments, afficher les attributs et leur valeur dans une listview.
 voici mon code pour cette partie :

    '----------------Déclaration des variables XML---------------------'

    Private documentXML As XmlDocument

    Private noeuxRacine, noeuxEnf As XmlNode

    Private EnfantNoeux As XmlNodeList

     Private elementXML As XmlElement

    Private attribCollecXML As XmlAttributeCollection

    '-----------------------------------------'


    PrivateSub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        ListView1.Items.Clear()

         EnfantNoeux = documentXML.GetElementsByTagName("IOConf")

         ForEach elementXML In noeuxRacine(ComboBox1.Text).ChildNodes

            ForEach noeuxEnf In EnfantNoeux

                 If noeuxEnf.LocalName = "PLC"Then

                    Dim item As ListViewItem = ListView1.Items.Add(elementXML.Name)

                    item.SubItems.Add(elementXML.GetAttribute("autoRun"))

                    item.SubItems.Add(elementXML.GetAttribute("MWInitZero"))

                    item.SubItems.Add(elementXML.GetAttribute("numberInternalWord"))

                    item.SubItems.Add(elementXML.GetAttribute("numberConstantWord"))

                    item.SubItems.Add(elementXML.GetAttribute("numberInternalBit"))

                      End If

            Next

        Next

    EndSub

sauf que je n'arrive à afficher uniquement que "PLC" et non les attributs...

qu'est ce que j'ai mal ou fait ou pas fait???

please Help !!


jeudi 7 février 2008 à 11:14:17 | Re : modifier un fichier xml

DiamonDonald

pardon une petite précrision sur le code ci-dessus, ne pas prendre en compte pour le moment le test "   If noeuxEnf.LocalName = "PLC"Then end if"



1 2

Cette discussion est classée dans : fichier, vb, modifier, xml, vois


Répondre à ce message

Sujets en rapport avec ce message

Modifier fichier XML par VB 6 [ par lamiruth ] Bonjour à tous,SVP j'utilise VB 6 pour mettre à jour des données d'un fichier XML !voici le code: Dim xmlFic As New MSXML2.DOMDocumentDim nodeBook As VB & XML [ par D2000 ] Salut,Je recois des messages de nos clients via un server MSMQ,ces messages contiennent un fichier XML, avant de sauver ces messages dans ma DB, je do VB et XML [ par pierreII ] Bonjour,J'ai réalisé un petit programme qui affiche du texte dans une ListBox, j'aimerais récupérer les éléments de cette ListBox, et les mettre dans Modifier fichier excel sous vb [ par jeje2 ] Salut,1-Pour modifier un graph excel, voici ma procedure:xlApp.ActiveChart.SetSourceData Source:=XlSheet.Range("A1:B10"), PlotBy:=xlColumnsmais les hi Modifier les partages d'un fichier avec VB [ par ambel ] BonjourJ'aimerai modifier les sécurités sur un ou plusieurs fichier avec visual basic.Rappel : Avec Win2000, NT4 on peux jouer sur le partage et les s Je cherche a lire un fichier XML...en VB [ par emouchet ] Je sais qu'il y en a qui l'on surement dejà fait mais bon ...Voici un exemple de fichier XML que j'ai a traiter.<br mise à jour de fichier xml sous VB .net [ par cylie ] Salut, c'est de nouveau la stagiaire en détresse.Voilà, j'ai un fichier XML et je m'en sers pour un pocket PC pour faire de la saisie. Donc, à chaque générer modifier fichier xml [ par chris21 ] bonjour, j'aimerai savoir si l'un d'entre vous a déjà utilisé vb 6 pour créer/modifier des fichiers xml, si oui est-ce difficile? Est-ce que quelqu'un Traitement des données d'un fichier ".XSD" en VB [ par epsitof ] Bonjour à tous,Je passe cette annonce car j'ai besoin d'une très grande aide, elle est urgente.Voila, j'ai un travail à faire donné par mon employeur, Modification d'un fichier XML en VB [ par soda_cops ] J'essaie de modifier un fichier XML (via MSXML4.dll) mais sans y parvenir.La lecture du fichier ne pose pas de problème.Les fonctions 'Create..' sembl


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales