Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[FINAL][Exe/AU3] Stringbetween.exe parser XML
Auteur Message
Répondre en citant
Message [FINAL][Exe/AU3] Stringbetween.exe parser XML 
Voici un code que j'avais fais pour parser des XML.

En réponse à ce POST :

http://stackoverflow.com/questions/23196417/extracting-string-from-any-non-…

StringBetween.au3

Code:
#include <String.au3>
Local $hOutFile=FileOpen("output.txt",2)
Local $hTexte=FileRead($CmdLine[1])
$AFind=_StringBetween($hTexte,$cmdline[2],$cmdline[3])
For $i= 0 To UBound($Afind)-1 step 1
   FileWrite($hOutFile,$AFind[$i]&@crlf)
Next
FileClose($hOutFile)


Version EXE :
StringBetween.exe

Utilisation :

Stringbetween [Fichier XML] [StringGauche] [StringDroit]

Exemple :

Stringbetween.exe Test.xml "<lien>" "</lien>"

Sortie : "Output.txt"

Si vous ne voulez pas passer par un fichier temporaire (output.txt)

Remplacez cette ligne :

Code:
 FileWrite($hOutFile,$AFind[$i]&@crlf)


par

Code:
 ConsoleWrite($hOutFile,$AFind[$i]&@crlf)


Dans le fichier AU3 et recompiler en mode console.

Ainsi vous pourrez l'utiliser dans une boucle FOR :

Code:
for /f "delims=" %%a in ('stringbetween.exe toto.xml "<lien>" "</lien>"') do echo %%a



Une autre méthode grâce à PowerShell que j'ai adapté en utilisant la méthode de Walid (Que je salut)
http://walid-toumi.blogspot.com.br/

J'ai un peu exagéré les échapements. Si vous voulez épurer... Libre à vous

Code:
::By SachaDee 2014
@echo off&cls
set $Fichier=test.xml
set $stringGauche=balise
set $stringDroite=/balise


(echo @echo off
 echo For /f "delims=:" %%%%a In ^(^'
 echo findstr ^/Bn "@PS" %%~nx0
 echo '^) do Set /A Line=%%%%a

 echo for ^/f  "delims=" %%%%x in  ^(^'more +%%Line%% %%^~nx0  ^^^| powershell -c -^'^) do echo %%%%x

echo pause ^& exit ^/b

echo @PS
echo $html = Get-Content ^.^\%$Fichier%  ^| out-string
echo $Test = [regex]^:^:match^($html^,^'^(^?^<^=^\^<%$stringGauche%^\^>^)^.^+^(^?^=^\^<%$StringDroite%^\^>^)^'^,"singleline"^)^.value.trim^(^)
echo write $Test
echo exit
) >recup.bat

call recup.bat


Okay



Dernière édition par sachadee le Lun 22 Aoû 2016 - 22:50; édité 4 fois

______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [FINAL][Exe/AU3] Stringbetween.exe parser XML 
Ne pas oublier de mettre des ^ devant les <> des balises :
Code:
Stringbetween fichier.xml ^<guid^> ^</guid>


Et heureusement qu'elle ne s’appelle pas Stringbetweenlegs Laughing




______________________________________________________
Visiter le site web du posteur
Répondre en citant
Message [FINAL][Exe/AU3] Stringbetween.exe parser XML 
@skywalker
Citation:
Ne pas oublier de mettre des ^ devant les <> des balises :


Tu peux simplement mettre des double quote :

Code:
Stringbetween fichier.xml "<guid>" "</guid>"


Wink




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [FINAL][Exe/AU3] Stringbetween.exe parser XML 
Ah ? Merci, le code sera plus propre Okay




______________________________________________________
Visiter le site web du posteur
Répondre en citant
Message [FINAL][Exe/AU3] Stringbetween.exe parser XML 
Skywalker a écrit:
Et heureusement qu'elle ne s’appelle pas Stringbetweenlegs Laughing


Mort de Rire




______________________________________________________
The batch is not a simple language of invite of command or interpreter, it is a program of execution of codes pushed


Visiter le site web du posteur Skype
Message [FINAL][Exe/AU3] Stringbetween.exe parser XML 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch