[..] Lire et modifier un fichier xml
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- ricky
- Niveau 7
- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
[..] Lire et modifier un fichier xml
Bonjour,
j'ai un très gros problème, je dois modifier un fichier xml et je ne trouve pas la manière de le faire. Ai-je mal vu ou c'est pas possible?
Merci d'avance pour votre aide
j'ai un très gros problème, je dois modifier un fichier xml et je ne trouve pas la manière de le faire. Ai-je mal vu ou c'est pas possible?
Merci d'avance pour votre aide
Modifié en dernier par ricky le ven. 06 févr. 2009 14:17, modifié 1 fois.
Re: Lire et modifier un fichier xml
Effectivement pas de fonctions native pour traiter le xml. Par contre j'ai trouvé un udf => http://www.autoitscript.com/forum/index ... hl=xml+udf
Attention aux règles de présentation
Règles
Attention aux règles de présentation

- ricky
- Niveau 7
- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [...]Lire et modifier un fichier xml
Merci pour ton intervention, j'avais lu les règles, mais pas assez bien. Voilà, j'ai modifié le titre.
Merci pour le lien, mais l'example dans le topic comporte une erreur, impossible de le tester...
Merci pour le lien, mais l'example dans le topic comporte une erreur, impossible de le tester...
Re: [...]Lire et modifier un fichier xml
Voila ce qu'il faut rajouter dans le fichier exemple:
et il y a une erreur d'index dans la fonction _GetFirstValue donc j'ai mis
( faut rajouter le and UBound($ret_val)>1 )
A part sa, sa fonctionne
Code : Tout sélectionner
#include <AVIConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <TreeViewConstants.au3>
#include <StaticConstants.au3>
Code : Tout sélectionner
If IsArray($ret_val) and UBound($ret_val)>1 Then
A part sa, sa fonctionne

- ricky
- Niveau 7
- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [...]Lire et modifier un fichier xml
Ok, j'arrive a compiler sans erreur. Mais peux-tu m'aider? Je ne m'en sort pas... Je flanche depuis un moment sur le problème...
Voici le XML que j'ai :
J'aimerais ressortir ce qu'il y a dans Extra, combien d'entrées, lesquelles et si elles sont à Yes et ensuite en rajouter s'il faut?
Tu peux m'aider? Je n'arrive même pas à Lire ce qu'il ce trouve dans extra....
Voici le XML que j'ai :
Code : Tout sélectionner
<?xml version="1.0" encoding="utf-16"?>
<Config>
<Extra Detection="Yes" Records="Yes" Compression="Yes" Allow="Yes" />
</Config>
Tu peux m'aider? Je n'arrive même pas à Lire ce qu'il ce trouve dans extra....
Re: [...]Lire et modifier un fichier xml
Dans _XMLDomWrapper tout est expliqué !
Voila les opérations basiques:
monxml.xml:
Attention: utf-16 est inutile pour notre langue. Sauf si vous avez des caractères japonnais,chinois... sinon c'est utf-8 !
Et le code:
Voila les opérations basiques:
monxml.xml:
Code : Tout sélectionner
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<Position x="758" y="373" w="406" h="426"/>
<Extra Detection="Yes" Records="Yes" Compression="Yes" Allow="Yes" test="no"/>
</Settings>
Et le code:
► Afficher le texteCode
- ricky
- Niveau 7
- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [...] Lire et modifier un fichier xml
Merci beaucoup pour le code, ça marche super bien.
Le utf-16 m'est imposé. Je dois aller lire un fichier xml qu'on me donne puis le modifier. Est-il possible de mettre en position 0 le nombre de ligne?
Le utf-16 m'est imposé. Je dois aller lire un fichier xml qu'on me donne puis le modifier. Est-il possible de mettre en position 0 le nombre de ligne?
Re: [...] Lire et modifier un fichier xml
$ele[0] Ne le donne t'il pas
? ou alors on parle pas des mêmes lignes...

- ricky
- Niveau 7
- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [...] Lire et modifier un fichier xml
Non, justement en 0 il y a le premier élément "Detection".
Re: [...] Lire et modifier un fichier xml
Donc on parle du tableau contenant les attributs...
Voila 
Code : Tout sélectionner
_ArrayInsert($tab_attrib,0,ubound($tab_attrib)+1)

- ricky
- Niveau 7
- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [...] Lire et modifier un fichier xml
Parfait, merci, je laisse encore le topic ouvert pour d'autres questions la semaine prochaine.
Une dernière, existe-t-il un moyen de décompiler un exe fait par auto-it et qu'on peut voir le code source?
Une dernière, existe-t-il un moyen de décompiler un exe fait par auto-it et qu'on peut voir le code source?
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [...] Lire et modifier un fichier xml
1 topic => 1 question => 1 réponse.ricky a écrit :je laisse encore le topic ouvert pour d'autres questions la semaine prochaine.
voir parfois
1 topic => 2 questions => 2 réponses.
mais si vous rajoutez des questions à la suite de ce topic, il va être difficile d'en retrouver l'historique parmi les nombreux messages.
Si le sujet à été résolu (ce qui semble être le cas), fermez le.
Ouvrez en un autre pour une nouvelle question.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- ricky
- Niveau 7
- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Lire et modifier un fichier xml
Bonjour Tlem,
si je laisse le topic ouvert, c'est que j'ai d'autres questions mais concernant le sujet principal, c'est à dire le xml, sinon, j'aurai bien entendu ouvert un autre topic.
si je laisse le topic ouvert, c'est que j'ai d'autres questions mais concernant le sujet principal, c'est à dire le xml, sinon, j'aurai bien entendu ouvert un autre topic.
- ricky
- Niveau 7
- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Lire et modifier un fichier xml
Une des valeurs dans ce fameux xml est à "No", comment puis-je faire pour tester toute la table et supprimer les valeurs qui ne sont pas égales à "Yes"?
- ricky
- Niveau 7
- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Lire et modifier un fichier xml
Personne ne peux m'aider sur ce point là?
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Lire et modifier un fichier xml
Tout dépend de la structure exacte de votre fichier.
Si la structure est connue cela sera plus facile, sinon, il faudra jouer avec des boucles.
Quoi qu'il en soit, Voodoo vous à donné tous les éléments dans son exemple sur ce message : http://www.autoitscript.fr/forum/viewto ... 095#p14095
Utilisez _XMLDeleteAttr pour supprimer votre valeur après l'avoir testé.
Si la structure est connue cela sera plus facile, sinon, il faudra jouer avec des boucles.
Quoi qu'il en soit, Voodoo vous à donné tous les éléments dans son exemple sur ce message : http://www.autoitscript.fr/forum/viewto ... 095#p14095
Utilisez _XMLDeleteAttr pour supprimer votre valeur après l'avoir testé.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- ricky
- Niveau 7
- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Lire et modifier un fichier xml
Merci pour ton intervention.
Voilà un gros problème que j'ai. Il ce peux que j'aie ceci :
Comme on peut voir ci-dessus, il ce peux que je trouve le noeud <Extra /> vide et à la lecture avec la fonction _XMLGetAllAttribIndex("/Settings/Extra",$tab_attrib,$tab_value) j'ai une magnifique erreur (Line -1: Error:Array variable subscript badly formatted). Comment tester si cette valeur est vide pour la supprimer? Je n'arrive pas à trouver, ça fait depuis lundi que je planche sur ce problème.
Merci d'avance
Voilà un gros problème que j'ai. Il ce peux que j'aie ceci :
Code : Tout sélectionner
<?xml version="1.0" encoding="utf-16"?>
<Config>
<Extra />
</Config>
Merci d'avance
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Lire et modifier un fichier xml
Je n'ai pas cette erreur avec ce code :
Code : Tout sélectionner
#Include <Array.au3>
#Include "_XMLDomWrapper.au3"
Global $xmlFile= @scriptdir & "/monxml.xml"
Global $ele[5]
Global $tab_attrib[20],$tab_value[20]
if Not FileExists($xmlFile) then exit msgbox(0,"Erreur",$xmlFile & " n'existe pas !")
if Not _XMLFileOpen($xmlFile) then exit msgbox(0,"Erreur",$xmlFile & " n'est pas un fichier xml")
$ele=_XMLGetChildNodes("/Config")
_ArrayDisplay($ele)
_XMLGetAllAttribIndex("/Config/Extra",$tab_attrib,$tab_value)
_Arraydisplay($tab_attrib)
_Arraydisplay($tab_value)
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".