Bonjour,

J'ai regardé les différents topics à ce sujet que j'ai pu trouvé, mais je n'ai pas réussi à l'adapter au code sur lequel je travaille.
En gros, j'ai des fichiers xml que je parcours, et je voudrais modifier toutes les lignes "commentaires".
Actuellement il y a ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Do While Not EOF(InputFileNumber) ' Loop until end of file.
                Line Input #InputFileNumber, TextLine
                'Une fois la ligne commentaires trouvée on donne une valeur vide à value
                If InStr(1, TextLine, "<Prop InternalName=""COMMENTAIRES"" " ) Then
                    Print #OutputFileNumber, "<Prop InternalName=""COMMENTAIRES"" Value="""" Label=""Commentaire"" />"
                Else
                    Print #OutputFileNumber, TextLine
                End If
            Loop

Sauf que je voudrais si possible dire qu'à partir de <Prop InternalName="COMMENTAIRES" jusqu'à la fermeture de la balise />, il remplace tout par "<Prop InternalName=""COMMENTAIRES"" Value="""" Label=""Commentaire"" />".

Mon problème étant que ces lignes que je veux modifier peuvent se présenter de différentes manière :
sur plusieurs lignes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<Prop InternalName="COMMENTAIRES"
              Value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
              Label="Commentaire" />
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<Prop InternalName="COMMENTAIRES" Value="xxxxxxxxx"
              Label="Commentaire" />
ou sur une seule :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Prop InternalName="COMMENTAIRES" Value="xxx" Label="Commentaire" />

D'où la nécessité d'aller chercher la fermeture de balise...

J'ai essayé ça puis j'ai vu que TextLine renvoyait la valeur de la ligne... y'a pas un moyen de regarder la ligne + 1 et - 1 si jamais je ne peux pas aller jusqu'à la fin de la balise ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 'La ligne qu'on veut modifier peut se trouver sur plusieurs ou une seule lignes.
    'On fait plusieurs tests pour le déterminer
    'Une fois la ligne commentaires trouvée on donne une valeur vide à value
    If InStr(1, TextLine, "<Prop InternalName=""COMMENTAIRES"" Value=" ) Then
        'Si la prochaine ligne est Label, on ne ferme pas la balise
        If InStr(1, TextLine + 1, "Label" ) Then
             Print #OutputFileNumber, "<Prop InternalName=""COMMENTAIRES"" Value="""""; ""
        Else 'Et si ce n'est pas le cas, il faut la fermer
             Print #OutputFileNumber, "<Prop InternalName=""COMMENTAIRES"" Value="""" Label=""Commentaires"" />"
        End If
    Else
        Print #OutputFileNumber, TextLine
    End If
Dans mes recherches pour modifier un fichier XMl, j'ai trouvé comment modifier la valeur X d'une balise comme ça : <CD> X </CD>

Mais je voudrais modifier une balise qui ressemble à ça : <CD=disk Value="128Mb" Label="plop">

En gros pour mettre Value="" pour chaque <CD=disk
....
Une idée ?
Merci pour votre aide