Une solution pour récuperer les valeurs entre 2 balises d'un fichiers XML, où il n'y a pas d'espace entre les balises et les valeurs à récuperer.

On va utiliser la substitution pour creer une valeur "#1#" à la place de la balise <balise> et "#2#" à la place de </balise>
et on affiche tous ce qu'il y a entre #1# et #2#

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
::::Par SachaDee
::::07/02/2013

@echo off

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::DEFINITION DE LA BALISE
::::MODIFIER CETTE VALEUR POUR INDIQUER QUEL BALISE IL FAUT PARSER SANS <>
::::EXEMPLE ICI <X509Certificate>

set valeur1=X509Certificate

::::DEFINITION DU FICHIER XML
::::OU SERA EFFECTUE LA RECHERCHE

set f_xml=1.xml


:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

set valeur2=/%valeur1%
setlocal enabledelayedexpansion enableextensions
 
set sw1=0
 
for /f  "delims=" %%a in (%f_xml%) do (
                                   set ligne=%%a
                                   set ligne=!ligne:^<%valeur1%^>= #1# !
                                   set ligne=!ligne:^<%valeur2%^>= #2# !
                                   for /d  %%b in (!ligne!) do (if "%%b"=="#2#" goto end
                                                                if !sw1!==1 echo %%b
                                                                if "%%b"=="#1#" set sw1=1
                                                          ))
             
 :end
endlocal

pause
Amicalement