1

最近、古いブログ (SharePoint) から現在のブログ (WordPress) に多数のブログ投稿をインポートしようとしました。インポートが完了すると、多くの厄介な<div>タグやその他の HTML が投稿のコンテンツに取り込まれ、サイトのレンダリング方法が台無しになりました。

MySQL データベースで問題のある行を表示できます。問題を引き起こしている可能性のある HTML テキストを選択的に削除する方法があるかどうかを知りたいです。 おそらくテキストを解析することで C# でこれをハックできますが、可能であれば SQL を使用してこれを行う方法を理解したいと思います。

これらのファイルの 1 つがデータベースのテキスト フィールドにどのように表示されるかを示す全文サンプルをご覧になりたい場合は、完全なサンプル ファイルを私の Web サイト にアップロードしました

これが私がやりたいことです:

  • <![CDATA[<div><b>Body:</b>すべてのファイルの先頭から削除
  • 次のように、すべてのファイルの末尾にあるメタ情報を削除します。

    <div><b>Category:</b> SharePoint</div>
    <div><b>Published:</b> 11/12/2007 11:26 AM</div>
    ]]>
    
  • 次のようなクラス属性を持つ可能性のあるすべてのタグ<div>と終了タグを削除します。</div>

    <div class=ExternalClass6BE1B643F13346DF8EFC6E53ECF9043A>
    

    注: ExternalClass の末尾の 16 進文字列は異なる場合があります

以前に MySQL で Update ステートメントを使用したことがなく、テキスト フィールド内のテキストを選択的に置換する場所をどこから始めればよいか途方に暮れています。SQL ステートメント内から正規表現を使用して支援しますか? リモート DB に対してステートメントを実行するにはどうすればよいですか?

4

3 に答える 3

2

投稿をインポートする前に、投稿をクリーンアップするのはどうですか?テキストファイルとして扱うことができるローカルファイルを操作する方がはるかに簡単なようです。次に、PerlまたはPythonを使用して、インポートする前に問題を好みに合わせて調整できます。

これは、SharePointで終了したデータに引き続きアクセスできることを前提としています。

于 2010-01-06T22:33:59.747 に答える
1

ウェブサイトを提供するために使用している、または最も慣れ親しんでいるバックエンド プラットフォームを利用せずにこれを行う簡単な方法はありません。私自身は、PHP または Perl を使用してデータをクリーンアップします。答えは、それは可能ですが、そのためにはある種のプログラミング/処理言語を使用する必要があります。MySQL だけではデータを消去することはできません。

于 2010-01-06T22:29:28.653 に答える
1

質問で言ったようにSQLを使用することに決めたと仮定すると、C#でハックするスキルがあれば、繰り返し/フェッチループでカーソルを使用して選択するストアドプロシージャを作成する方法を理解できるはずです行、データを処理する文字列関数、および行を更新する update です。これをチェックしてください:

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

于 2010-01-06T22:39:16.780 に答える