Aide et conseils concernant AutoIt et ses outils.
AlbatorV
Niveau 2
Messages : 23 Enregistré le : mer. 05 nov. 2008 11:38
Status :
Hors ligne
#1
Message
par AlbatorV » lun. 15 déc. 2008 14:25
Bonjour, j'ai besoin de faire un utilitaire pour lire un fichier xml, verifier le chemin des valeurs entre <pathstring> </pathstring> et de supprimer la partie <path color... jusqu'a </path> si le chemin n'existe pas...
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<foldercolors>
<path color="{2F499E2B-8B6E-4B80-8E3B-C73E032E801F}">
<dir>
<pathstring>C:\EXISTE</pathstring>
</dir>
</path>
<path color="{FEDC8A0B-6F3B-4113-A733-17A008C87ADB}">
<dir>
<pathstring>C:\NEXISTEPAS</pathstring>
</dir>
</path>
</foldercolors>
J'ai cherché et trouvé XMLDomWrapper.au3 mais je n'arrive à rien snifff
...
Pouvez-vous m'aiguillé ?
Modifié en dernier par
AlbatorV le mer. 24 déc. 2008 10:04, modifié 1 fois.
Tlem
Site Admin
Messages : 11784 Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status :
Hors ligne
#2
Message
par Tlem » lun. 15 déc. 2008 17:47
AlbatorV
Niveau 2
Messages : 23 Enregistré le : mer. 05 nov. 2008 11:38
Status :
Hors ligne
#3
Message
par AlbatorV » mar. 16 déc. 2008 08:53
Merci pour le lien...
Mais je n'arrive pas à lire dans le fichier...
Code : Tout sélectionner
#include "_XMLDomWrapper.au3"
#include <Array.au3>
$sFile = "C:\TEMP\foldercolors.oxc"
If FileExists($sFile) Then
$ret = _XMLFileOpen ($sFile)
$param2=_XMLGetValue('/foldercolors/path/dir')
_ArrayDisplay($param2,"TEST")
EndIf
Et pour supprimer, je pense récuperer le n° de ligne et supprimer 2 lignes avant et 2 lignes apres... il y a moyen de récuperer le numero de ligne ?
Tlem
Site Admin
Messages : 11784 Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status :
Hors ligne
#4
Message
par Tlem » mar. 16 déc. 2008 18:37
Je ne connais pas particulièrement cet UDF.
J'ai simplement vu que votre fichier XML correspond au format géré par celui-ci.
jbnh
Niveau 11
Messages : 1932 Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status :
Hors ligne
#5
Message
par jbnh » mer. 17 déc. 2008 10:31
Ca devrait marcher ainsi:
Code : Tout sélectionner
#include <string.au3>
$file = FileOpen("blabla.xml", 0)
If $file = -1 Then
MsgBox(0, "Erreur", "Fichier introuvable !")
Exit
EndIf
$chars = FileRead($file)
$array = _StringBetween($chars, "<pathstring>", "</pathstring>")
If IsArray ($array) Then
msgbox (0,'', $array[0] & " " & $array[1])
;ICI TU TEST LES CHEMINS
;SI UN CHEMIN N EXISTE PAS:
;StringReplace ($chars, "<pathstring>"&$array[1 ou 0]&"</pathstring>", "")
Endif
Je sais pas trop comment tu peux tester l'existence d'un dossier.
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !
Merci
AlbatorV
Niveau 2
Messages : 23 Enregistré le : mer. 05 nov. 2008 11:38
Status :
Hors ligne
#6
Message
par AlbatorV » mer. 24 déc. 2008 10:03
Voici la solution...
Code : Tout sélectionner
#include "_XMLDomWrapper.au3"
#include <Array.au3>
$sFile = "C:\TEMP\foldercolors.xml"
$ret = _XMLFileOpen ($sFile)
For $i=_XMLGetNodeCount("/foldercolors/path") to 1 Step -1
$pathstring = _XMLGetValue("/foldercolors/path[" & $i & "]/dir/pathstring")
If NOT FileExists($pathstring[1]) Then
_XMLDeleteNode("/foldercolors/path[" & $i & "]")
EndIf
Next