1

我最近尝试将一堆博客文章从旧博客 (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 末尾的十六进制字符串可以不同

我以前没有在 MySQL 中使用过 Update 语句,我不知道从哪里开始有选择地替换文本字段中的文本。我会在 SQL 语句中使用正则表达式来提供帮助吗?我将如何对远程数据库执行语句?

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# 破解它的技能,您应该能够弄清楚如何创建一个存储过程,该存储过程在重复/获取循环中使用游标来选择行,用于处理数据的字符串函数,以及用于更新行的更新。看一下这个:

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

于 2010-01-06T22:39:16.780 回答