2 votes

J'espère qu'une regex peut le faire. Réparer un XML cassé

J'ai un gros fichier XML que je veux analyser. Le XML est fondamentalement cassé, et avec plus de 2000 lignes, j'essaie d'éviter une réparation manuelle ;)

Puis-je utiliser le remplacement d'expressions rationnelles dans Notepad++ pour faire cela ?

<Sensor ID="21.1.1_L"/>

à

<Sensor ID="21.1.1_L">

en perdant la barre oblique dans toutes les balises "Sensor" (et en gardant à l'esprit que je ne peux pas simplement remplacer /> par > et que l'ID est variable, y compris sa longueur, et qu'il peut ou non comporter le trait de soulignement et l'alphabet de fin).

Merci pour toute suggestion.

4voto

Tim Pietzcker Points 146308

Cela devrait fonctionner : Cherchez

(<Sensor [^<>]*)/>

et les remplacer par

\1>

[^<>]* correspondra à n'importe quel nombre de caractères, à l'exception des crochets (ceci afin de s'assurer que nous ne pouvons jamais correspondre à travers les limites d'une balise). Ensuite, /> ne correspond que si la balise courante se termine par une barre oblique.

Vous devrez bien sûr activer la correspondance avec les expressions rationnelles dans Notepad++.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X