Aide recherche avec notepad++ [OK]

Aide recherche avec notepad++ [OK] - Logiciels - Windows & Software

Marsh Posté le 09-10-2019 à 10:58:51    

Bonjour,
 
Avec notepad++, je voudrais rechercher dans un fichier xml, une valeur contenue dans une balise
Par exemple la balise s'appelle code et je recherche la valeur 1234
 
Je pourrais donc chercher la chaîne <code>1234</code>
 
Mais le pb est que cette balise est présente à plusieurs endroits, et que je ne veux par exemple la trouver que lorsqu'elle est dans la balise de niveau supérieur <service>
 
...
<batiment>
   ...
   <nom>blabla</nom>
   <code>1234</code>
   ...
</batiment>
...
<service>
   ...
   <nom>truc</nom>
   <code>1234</code>
   ...
</service>
...
 
Y a t il un moyen de faire ça ?
 
J'ai essayé un truc du genre rechercher <service>*<code>1234</code>*</service> mais ça ne marche pas
 
Merci


Message édité par rogntudjuuu le 09-10-2019 à 16:55:19
Reply

Marsh Posté le 09-10-2019 à 10:58:51   

Reply

Marsh Posté le 09-10-2019 à 14:23:21    

Notepad++ ne sait pas ce qu'est un fichier XML.
Pour lui c'est du texte simple, il ne peut donc pas se référer à sa structure.
 
Le seul moyen de s'en sortir c'est si ce qu'il y a avant ou après ce que tu cherches est connu et fixe.
Il suffit alors d'étendre la recherche en incluant ces éléments connus ("<nom>truc</nom>" dans ton exemple).
 
Sinon il faut utiliser un logiciel spécialement conçu pour travailler avec des XML.


---------------
#TeamNoBidouille || Come to the Dark Side, we have cookies || Mangez 5 fruits et légumes par an ! || Le digital, c'est les doigts
Reply

Marsh Posté le 09-10-2019 à 14:55:24    

avec une recherche par regular expression ?
genre :

 

"<service>.*<code>1234</code>.*</service>" ?


Message édité par Z_cool le 09-10-2019 à 14:56:21

---------------
#mais-chut
Reply

Marsh Posté le 09-10-2019 à 15:00:05    

sinon il y a le basic : recherche par expression reguliere "<service>|<code>1234</code>"
 
et tu click sur "Find all in current document" la fenêtre du bas t'affichera toutes les lignes trouvé, double click dessus et jackpot:
 
https://reho.st/self/98dee1752d30fb3ef936dd120f15909feeee92b5.png


---------------
#mais-chut
Reply

Marsh Posté le 09-10-2019 à 15:54:10    

Merci à vous deux pour vos réponses
 
- malheureusement je ne peux inclure des données fixes dans la recherche, car il n'y en a pas dans mon utilisation réelle
- j'ai essayé la recherche par regular expression du type <service>.*<code>1234</code>.*</service>, mais ça me dit qu'il ne trouve pas. Sauf si je mets tout à plat, en enlevant les espaces et les fins de ligne. Peut être un pb de syntaxe de l'expression ?
- sinon la solution <service>|<code>1234</code> permet de me dépanner
 
:-)
-  

Reply

Marsh Posté le 09-10-2019 à 16:54:48    

Je ne sais pas si je vais m'en sortir mieux avec xml notepad
Je vais creuser
Mais en tous cas je viens de l'installer, ça va bien me servir déjà en dehors de ce pb de recherche
merci

Reply

Marsh Posté le 09-10-2019 à 17:39:11    

Pour moi le plus simple serait de convertir le XML en json.
Le json est bien plus facilement "parcourable" par tout un tas de logiciels ou de libs (jq, jmespath, lib python, etc ...)


---------------
#TeamNoBidouille || Come to the Dark Side, we have cookies || Mangez 5 fruits et légumes par an ! || Le digital, c'est les doigts
Reply

Marsh Posté le 10-10-2019 à 08:45:15    

rogntudjuuu a écrit :


- sinon la solution <service>|<code>1234</code> permet de me dépanner

 

:-)
-


professionnellement parlant, j'utilise cette solution tout les jours, même si c'est pas sur du XML pure
(sur un fichier CPL des proxySG@Symantec/BlueCoat pour l'histoire complète ;) )


Message édité par Z_cool le 10-10-2019 à 08:46:21

---------------
#mais-chut
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed