Question

J'ai récemment essayé d'importer un tas de messages de blog d'un ancien blog (SharePoint) sur mon blog actuel (WordPress). Une fois l'importation terminée, beaucoup de balises <div> désagréables et autres HTML fait dans le contenu du poste, qui foiré la façon dont mon site a été rendu.

Je suis en mesure d'afficher les lignes incriminées dans la base de données MySQL et que vous voulez savoir s'il y a un moyen de supprimer sélectivement le texte HTML qui peut causer des problèmes. Je pourrais probablement pirater cela en C # en analysant dans le texte, mais je voudrais savoir comment je peux le faire en utilisant SQL si je peux.

Si vous voulez voir un échantillon en texte intégral de ce que l'un de ces fichiers ressemble à tel qu'il existe dans le champ de texte de base de données, Je téléchargé un fichier échantillon complet sur mon site web .

Voici veulent que je veux faire:

  • Supprimer <![CDATA[<div><b>Body:</b> depuis le début de chaque fichier
  • Supprimer les méta-informations à la fin de chaque fichier, ce qui pourrait ressembler à ceci:

    <div><b>Category:</b> SharePoint</div>
    <div><b>Published:</b> 11/12/2007 11:26 AM</div>
    ]]>
    
  • Enlever tous les <div> et balise de fermeture de </div>, ce qui pourrait avoir un attribut de classe comme:

    <div class=ExternalClass6BE1B643F13346DF8EFC6E53ECF9043A>
    

    Remarque: La chaîne hexagonale à la fin de l'ExternalClass peut être différent

Je ne l'ai pas utilisé une déclaration de mise à jour dans MySQL avant et je suis à une perte pour savoir où commencer à remplacer sélectivement du texte dans un champ de texte. Est-ce que j'utiliser regex dans une instruction SQL pour aider? Comment puis-je exécuter une instruction contre la DB à distance?

Était-ce utile?

La solution

Qu'en est-il nettoyer les messages avant de les importer? Semble travailler avec un fichier local que vous pouvez traiter comme un fichier texte serait beaucoup plus facile. Ensuite, vous pouvez utiliser Perl ou Python pour peser sur le problème à votre goût avant de les importer.

Cela suppose que vous avez toujours accès aux données était terminée dans SharePoint.

Autres conseils

Il n'y a pas de moyen simple de faire cela sans utiliser la plate-forme arrière-plan que vous utilisez pour servir votre site ou sont les plus acustomed à. Moi-même, je voudrais utiliser PHP ou Perl pour nettoyer la place de données qui pourrait être difficile au mieux. La réponse est, il peut être fait, mais vous devez utiliser un certain type de langage de programmation / de traitement pour le faire, MySQL lui-même ne sera pas en mesure de nettoyer les données.

En supposant que vous êtes déterminé à utiliser SQL comme vous l'avez dit dans votre question, si vous avez la compétence de pirater avec C #, vous devriez être en mesure de comprendre comment créer une procédure stockée qui utilise un curseur dans une répétition / boucle chercher pour sélectionner les lignes, les fonctions de chaîne pour masser les données, et une mise à jour pour mettre à jour la ligne. Check this out:

http://dev.mysql.com/doc/refman /5.0/en/cursors.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top