我最近尝试将旧博客(SharePoint)中的大量博客帖子导入到我当前的博客(WordPress)。导入完成后,很多讨厌的<div>
标签和其他HTML都会进入帖子内容,这搞砸了我的网站渲染方式。
我能够查看MySQL数据库中有问题的行,并想知道是否有办法有选择地删除可能导致问题的HTML文本。我可能会在C#中破解它通过解析文本,但我想知道如果可以的话我如何使用SQL来做到这一点。
如果您想查看数据库文本字段 I uploaded a full sample file to my web site中存在的其中一个文件的完整文本示例。
我希望这样做:
<![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语句中使用正则表达式来帮助吗?我如何针对远程数据库执行语句?
答案 0 :(得分:2)
在导入之前清理帖子怎么样?看起来像使用本地文件,您可以将其视为文本文件将更容易。然后你可以使用Perl或Python在导入之前根据自己的喜好来解决问题。
这假设您仍然可以访问SharePoint中已结束的数据。
答案 1 :(得分:1)
没有使用您用来为您的网站服务或最习惯的后端平台,没有简单的方法可以做到这一点。我自己,我会使用PHP或Perl清理数据,这可能是最棘手的。所以答案是,它可以完成,但你必须使用某种类型的编程/处理语言才能这样做,MySQL本身就无法清理数据。
答案 2 :(得分:1)
假设你决定像你在问题中所说的那样使用SQL,如果你有能力用C#破解它,你应该能够弄清楚如何创建一个在重复/获取循环中使用游标的存储过程选择行,按下数据的字符串函数,以及更新行的更新。看看这个: