06 décembre 2015

Expressions régulières pour parser du XLM

J'ai voulu de manière simple mettre en surbrillance une string XML pour un rendu dans une page HTML !


Bon même y a pleins de plug-in c# ou JS, voir des supers convertisseurs en ligne... je préfère me braquer cela à la main : voici ma proposition...

Il y a plusieurs types de "balises" à détecter, entourer dans le texte d'origine ces balises de <span class="Type Balise">xx</span> pour gérer cela avec du CSS.

Voici les expressions régulières associées aux types de balises :

Les commentaires : (?<comment><!--(\w|\W)*?-->)
Les tags : (<|</)(?<tag>\w*?)([>\s])
Les attributs : ((<\w*?\s*?)|(("|')\s*?))(?<attr>\w*)=("|')
Les valeurs des attributs : (=(?<quote>"|'))(?<attvalue>(\w|\W)*?)?(\k<quote>) 
Les valeurs des tags : (?<value>(\w|\W)*?)<   [Penser à éliminer les valeurs vide ici]
Les séparateurs : (?<sep><|>|=|"|')


Détecter les infos dans l'ordre et éliminer des résultats les infos dont le texte est déjà dans un groupe précédent (Par exemple pour éviter de mettre en surbrillance un tag dans un commentaire).


La suite quand j'ai le c# qui marche !!

Aucun commentaire:

Enregistrer un commentaire