Вопрос

Недавно я попытался импортировать кучу записей в блоге из старого блога (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>
    

    Примечание:Шестнадцатеричная строка в конце ExternalClass может быть другой

Я раньше не использовал инструкцию Update в MySQL и не знаю, с чего начать выборочную замену текста в текстовом поле.Буду ли я использовать регулярное выражение из инструкции SQL, чтобы помочь?Как бы я выполнил инструкцию для удаленной базы данных?

Это было полезно?

Решение

Как насчет очистки записей перед их импортом?Похоже, работать с локальным файлом, который вы можете рассматривать как текстовый файл, было бы намного проще.Затем вы могли бы использовать Perl или Python, чтобы решить проблему по своему вкусу перед импортом.

Это предполагает, что у вас все еще есть доступ к данным, которые были перенесены в SharePoint.

Другие советы

Не существует простого способа сделать это без использования серверной платформы, которую вы используете для обслуживания своего веб-сайта или к которой наиболее привыкли.Сам я бы использовал PHP или Perl для очистки данных, что в лучшем случае было бы непросто.Итак, ответ таков: это можно сделать, но для этого вы должны использовать какой-то тип языка программирования / обработки, MySQL сам по себе не сможет очистить данные.

Предполагая, что вы полны решимости использовать SQL, как вы сказали в своем вопросе, если у вас есть навыки взлома его с помощью C #, вы должны быть в состоянии понять, как создать хранимую процедуру, которая использует курсор в цикле повтора / выборки для выбора строк, строковые функции для массирования данных и обновление для обновления строки.Зацени это:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top