2010-03-15 3 views
0

J'ai HTML dans un élément CDATA (HTML est trop merdique pour être analysé) et je voudrais supprimer les balises <a href>, mais garder le texte dans les balises.Comment faire pour supprimer les balises HTML <a> dans un élément CDATA

Je recherche autour de regex mais toujours pas trouvé un bon moyen de le faire.

Tous les conseils sont les bienvenus!

+1

Quelques exemples d'entrée et de sortie désirée aideraient –

Répondre

1

Vous pourrait enlever quoi que ce soit à partir d'une chaîne qui ressemble un lien HTML via regex. Les résultats dépendent fortement de votre entrée, mais en remplaçant </?a\b[^>]*> par la chaîne vide, vous pourriez aller assez loin.

Dans tous les cas, la gestion de HTML avec des expressions régulières est merdique et ad-hoc. Si votre jeu de données d'entrée est limité et bien connu et que tout ce que vous avez à faire est de jeter un code de conversion à usage unique, puis merdique et ad hoc peut être suffisant et vous pourriez vous en sortir.

Si vous développez le code qui est destiné à être le genre de longue durée, vous devriez certainement regarder dans l'un des parseurs avilable HTML (BeautifulSoup pour Python ou HTML Agility Pack for .NET viennent à l'esprit) et gérer non seulement votre HTML d'une manière structurée, mais aussi le corriger pendant que vous y êtes.

+0

Merci pour votre réponse. En fait, il s'agit juste d'un export one-shot donc ce n'est pas un problème. Je cherche maintenant un processeur xslt 2 supportant la fonction de remplacement sur Ubuntu. – pvledoux

+0

http://saxon.sourceforge.net/ – Tomalak

Questions connexes