Frage

Ich habe versucht, vor kurzem eine Reihe von Blog-Posts von einem alten Blog (Sharepoint) zu meinem aktuellen Blog (Wordpress) zu importieren. Wenn der Import abgeschlossen ist, viele böse <div> Tags und andere HTML gemacht, um den Inhalt der Post, die die Art und Weise vermasselt meine Seite wurde zu machen.

Ich bin in der Lage, die beanstandeten Zeilen in der MySQL-Datenbank zu lesen und wissen wollen, ob es eine Möglichkeit, selektiv den HTML-Text zu entfernen, die Probleme verursachen können. Ich könnte wahrscheinlich hacken dies in C # durch Parsen durch den Text, aber ich möchte, um herauszufinden, wie ich dies mit SQL tun kann, wenn ich kann.

Wenn Sie eine Volltextprobe sehen wollen, was eine dieser Dateien aussieht, wie es in der Datenbank vorhanden Textfeld, ich lud eine vollständige Beispieldatei auf meiner Webseite .

Hier will ich tun möchte:

  • Entfernen <![CDATA[<div><b>Body:</b> von Anfang jeder Datei
  • Entfernen Sie die Meta-Informationen am Ende jeder Datei, die wie folgt aussehen:

    <div><b>Category:</b> SharePoint</div>
    <div><b>Published:</b> 11/12/2007 11:26 AM</div>
    ]]>
    
  • jedes <div> entfernen und Schließen </div>-Tag, das ein Klassenattribut wie haben könnte:

    <div class=ExternalClass6BE1B643F13346DF8EFC6E53ECF9043A>
    

    Hinweis: Der Hex-String am Ende des ExternalClass kann unterschiedlich sein

Ich habe keine Update-Anweisung in MySQL vor und ich bin an einem Verlust für wo man anfangen soll, um wahlweise Ersetzen von Text in einem Textfeld verwendet. Würde ich Regex innerhalb einer SQL-Anweisung zu helfen? Wie würde ich eine Erklärung gegen die Remote-DB durchführen?

War es hilfreich?

Lösung

Was die Beiträge Aufräumen, bevor Sie sie importieren? Scheint, wie mit einer lokalen Datei arbeiten, die Sie als eine Textdatei viel einfacher sein würde, behandeln. Dann könnten Sie Perl oder Python verwenden, um auf das Problem einer Vielzahl von Designs zu tragen nach unten vor dem Import.

Dies setzt voraus, dass Sie noch Zugriff auf die Daten haben, die über in Sharepoint war.

Andere Tipps

Es gibt keinen einfachen Weg, dies zu tun, ohne die Back-End-Plattform verwendet, die Sie verwenden, um Ihre Website zu dienen oder die meisten acustomed zu. Ich selbst würde ich PHP oder Perl verwenden, um die Daten zu bereinigen, die bestenfalls schwierig sein werden könnten. Die Antwort ist also, es kann getan werden, aber Sie müssen irgendeine Art von Programmierung / Verarbeitungssprache verwenden, um so zu tun, MySQL auf eigenem wird die Daten nicht sauber sein kann.

Angenommen, Sie werden bestimmt SQL zu verwenden, wie Sie in Ihrer Frage gesagt, wenn Sie die Fähigkeit haben, es zu hacken mit C # sollten Sie in der Lage sein, herauszufinden, wie eine gespeicherte Prozedur zu erstellen, die einen Cursor in einer Wiederholung verwendet / Abrufschleife die Zeilen auszuwählen, massieren String-Funktionen die Daten und eine Aktualisierung der Zeile zu aktualisieren. Check this out:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top