Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1563 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VB / XML - modifier balises

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VB / XML - modifier balises

n°2255609
minimoack
Posté le 13-04-2015 à 16:19:59  profilanswer
 

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


 
Sauf que je voudrais si possible dire que à 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 :
  1. <Prop InternalName="COMMENTAIRES"
  2.           Value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  3.           Label="Commentaire" />


 
ou sur une seule :

Code :
  1. <Prop InternalName="COMMENTAIRES" Value="xxx" Label="Commentaire" />


 
D'où la nécessité d'aller chercher la fermeture de balise...  
 
Une idée ?  J'ai vu qu'on pouvait modifier la valeur à l'intérieur d'une balise, avec les node, mais ce code parcourt un fichier je crois, et il ne spécifie pas xmlDocument. Y-a-t-il un moyen avec l'exemple que j'ai mis précédemment ou je dois modifier tout le code pour intégrer les xmlDocument?
 
 :??:

mood
Publicité
Posté le 13-04-2015 à 16:19:59  profilanswer
 

n°2255658
minimoack
Posté le 14-04-2015 à 08:22:24  profilanswer
 

On ne peut pas regarder la ligne précédente et la ligne suivante ?
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 ?
 
 

Code :
  1. 'La ligne qu'on veut modifier peut se trouver sur plusieurs ou une seule lignes.
  2. 'On fait plusieurs tests pour le déterminer
  3. 'Une fois la ligne commentaires trouvée on donne une valeur vide à value
  4. If InStr(1, TextLine, "<Prop InternalName=""COMMENTAIRES"" Value=" ) Then
  5.     'Si la prochaine ligne est Label, on ne ferme pas la balise
  6.     If InStr(1, TextLine + 1, "Label" ) Then
  7.          Print #OutputFileNumber, "<Prop InternalName=""COMMENTAIRES"" Value="""""; ""
  8.     Else 'Et si ce n'est pas le cas, il faut la fermer
  9.          Print #OutputFileNumber, "<Prop InternalName=""COMMENTAIRES"" Value="""" Label=""Commentaires"" />"
  10.     End If
  11. Else
  12.     Print #OutputFileNumber, TextLine
  13. End If


Message édité par minimoack le 14-04-2015 à 08:23:22
n°2255659
minimoack
Posté le 14-04-2015 à 09:03:59  profilanswer
 

Désolée j'ai oublié de mettre un exemple de mes balises.
 
Dans mes recherches pour modifier un fichier XMl, j'ai trouvé comment modifier la valeur d'une balise comme ça :  
<CD> Valeur </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
 
:??: :??: :??:

n°2255666
Marc L
Posté le 14-04-2015 à 09:56:14  profilanswer
 

 
           Bonjour.
 
           Là les fichiers sont traités comme de simples fichiers texte …  Mais pourquoi ne pas utiliser Excel pour lire les fichiers XML ?
 
           FAQ Excel - Manipuler les fichiers XML  …
 

n°2255671
minimoack
Posté le 14-04-2015 à 10:25:40  profilanswer
 

Oui effectivement, mais vu que je "découvre" tout juste le code qu'on m'a donné, je voulais savoir s'il y a une solution sans tout le modifier en fait. Mais je vais surement me pencher sur cette solution au final, car je ne trouve pas beaucoup d'info ^^

n°2255801
Marc L
Posté le 15-04-2015 à 09:19:02  profilanswer
 

 
           A noter aussi depuis la version 2007 la méthode  Workbooks.OpenXML  …
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VB / XML - modifier balises

 

Sujets relatifs
Modifier son de A à Z uniquement avec le Dashboard de Wordpress?VBA EXCEL impossible de modifier le contenu d'une cellule
Lecture Flux XML, Doublon et ressources SQLsuppression fichier avec macro VB
GoPro Hero - modifier la fréquence du time-lapseProgramme en VB Multicam
modifier archive tar en une seule ligne de code[RESOLU] [POWERSHELL] Modifier des lignes précises sur un fichier
[AJAX] Load d'un fichier XML en ajaxRemplacer contenu texte entre 2 balises en batch
Plus de sujets relatifs à : VB / XML - modifier balises


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR