سؤال

حاولت مؤخرا استيراد مجموعة من المشاركات بلوق من مدونة قديمة (SharePoint) إلى مدونتي الحالية (WordPress). عند الانتهاء من الاستيراد، الكثير من سيئة <div> قامت العلامات وغيرها من HTML باتجاه محتوى المنشور، الذي كان ثمل بالطريقة التي يقدمها موقعي.

أنا قادر على عرض الصفوف المخالفة في قاعدة بيانات MySQL وتريد معرفة ما إذا كانت هناك طريقة لإزالة نص HTML بشكل انتقائي الذي قد يتسبب في مشاكل. ربما يمكن أن اختراق هذا في C # عن طريق التحليل من خلال النص، ولكن أود معرفة كيفية القيام بذلك باستخدام SQL إذا استطعت.

إذا كنت ترغب في رؤية نموذج نص كامل مما يبدو عليه أحد هذه الملفات كما هو موجود في حقل نص قاعدة البيانات، قمت بتحميل ملف عينة كاملة إلى موقع الويب الخاص بي.

هنا تريد أن أفعل:

  • إزالة <![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>
    

    ملاحظة: سلسلة HEX في نهاية الخارجية يمكن أن تكون مختلفة

لم أستخدم عبارة تحديث في MySQL من قبل وأنا بخسارة حيث يجب البدء في استبدال النص بشكل انتقائي داخل حقل نص. هل يمكنني استخدام Regex من داخل بيان SQL للمساعدة؟ كيف يمكنني تنفيذ عبارة ضد DB البعيد؟

هل كانت مفيدة؟

المحلول

ماذا عن تنظيف الوظائف قبل استيرادها؟ يبدو أن العمل مع ملف محلي يمكنك علاجه كملف نصي سيكون أسهل بكثير. ثم يمكنك استخدام Perl أو Python لتحمل المشكلة على رغبتك قبل الاستيراد.

يفترض هذا أنه لا يزال لديك حق الوصول إلى البيانات التي انتهت في SharePoint.

نصائح أخرى

لا توجد طريقة بسيطة للقيام بذلك دون استخدام منصة النهاية الخلفية التي تستخدمها لخدمة موقع الويب الخاص بك أو هي الأكثر حداثة. نفسي، أود استخدام PHP أو PERL لتنظيف البيانات التي ستكون صعبة في أحسن الأحوال. وبالتالي فإن الجواب هو أنه يمكن القيام به، ولكن يجب عليك استخدام نوع من لغة البرمجة / المعالجة للقيام بذلك، لن تتمكن MySQL من تلقاء نفسها من تنظيف البيانات.

على افتراض أنك مصمم على استخدام SQL مثلك كما قلت في سؤالك، إذا كان لديك المهارة للاختراق بها مع C #، فيجب أن تكون قادرا على معرفة كيفية إنشاء إجراء مخزن يستخدم مؤشرا في حلقة تكرار / جلب لتحديد الصفوف، وظائف السلسلة للتدليك البيانات، وتحديث لتحديث الصف. تحقق من هذا:

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top