IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Regex de netoyage de copier/coller depuis Office


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Regex de netoyage de copier/coller depuis Office
    Bonjour,

    Voila sur le cms que j'ai crée il y a un fckeditor (un wysiwyg), dans lequel on peut copier / coller ses documents word .

    Problème : le code html est dégueulasse , il y a des balise non html ("<o:p>" ou "<st1:state w:st="on">")...

    Je voudrais donc nettoyer tout ça avec des regexp, je pense pas avoir beaucoup de choix.

    Donc est ce que vous connaissez une manière d'effectuer ceci :

    texte de base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <font size="3" face="Times New Roman">du texte blabla<font color="red"> encore du texte mais rouge </font> la fin du texte</font>
    et d'en tirer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    du texte blabla<font color="red"> encore du texte mais rouge </font> la fin du texte
    Je souhaite donc garder les balises <font> (et leur balise fermente correspondante) ou l'on spécifie la couleur du texte mais pas les autres.

    Merci

  2. #2
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Bonjour,

    Vu que ta chaine est un fragment XML, tu peux utiliser un objet de type XmlDocument et ne récupérer que les éléments qui te plaisent, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    string xml = "<font size=\"3\" face=\"Times New Roman\">du texte blabla<font color=\"red\"> encore du texte mais rouge </font> la fin du texte</font>";
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(xml);
    string xml2 = doc.FirstChild.InnerXml;

  3. #3
    Invité
    Invité(e)
    Par défaut
    Le problème c'est que je veux juste supprimer les balises et pas leur contenu.

  4. #4
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Le code que j'ai écris permet de faire ça.

    Regarde le contenu de xml2 et tu verra qu'il est égal à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    du texte blabla<font color="red"> encore du texte mais rouge </font> la fin du texte

  5. #5
    Invité
    Invité(e)
    Par défaut
    Cmment je pourrais faire alors dans ce genre de cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    yyyyy<font size="3" face="Times New Roman">du texte blabla<font color="red"> encore du texte mais rouge </font> la fin du texte</font>zzzz
    pour loader une chaine dans du xml il faut que ce soit du xml strict, or ce n'est pas el case du html que j'ai.

  6. #6
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Tu veux dire que certaines balises ne sont pas forcément bien fermées ?

    Dans ton exemple si dessus, cela passe encore. Au pire, il suffit de rajouter un élément <doc></doc> ou autre sur ta chaine. C'est pas vraiment un problème.

    Après oui, c'est sûr, si tes chaines possèdent des éléments qui ne sont pas fermés, ma technique ne fonctionne pas. Mais est-ce vraiment le cas ?

Discussions similaires

  1. Copier/Coller depuis listview
    Par Drowan dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 31/07/2014, 11h05
  2. [PR-2010] VBA Copier / coller depuis Excel
    Par jouclar dans le forum VBA Project
    Réponses: 1
    Dernier message: 17/04/2013, 16h05
  3. Copier/coller depuis un StyledText vers Word
    Par p1xl_01 dans le forum SWT/JFace
    Réponses: 0
    Dernier message: 08/01/2013, 18h06
  4. [XL-2003] Copier/coller depuis le navigateur
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/05/2010, 07h51
  5. Réponses: 1
    Dernier message: 15/06/2009, 18h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo