Posts Tagged ‘REXML’

前所未有的遭遇死机

Tuesday, July 17th, 2007

Ubuntu 上用 ruby 的 REXML 去 parse 二十几万个 xml 文件,内容很简单,文件也很小。遭遇不确定性死机,甚至有一次直接重启了。昨天一边 parse 一边往 mysql 里插,在50万左右的时候再次死机!

死机之后 mysql 表损坏,进入数据库文件的保存目录(ubuntu上是 /var/lib/mysql, 郁闷的是数据库目录除了mysql用户其他人没有任何权限),用myisamchk –recover tbl_name.MYI 把表修复好。
机器,Ubuntu,ruby REXML 一定是其中之一不可信赖。今天在我那刚升到 10.4.10的 Tiger 上试试。

make excerpt in Ruby

Wednesday, May 9th, 2007

大量地方都会有这样的问题:给大段文字做一个截断当作摘要,但是一定要保证 html markup valid。

最简单的方式是删掉所有的 html 标签然后截断,这样做的结果是产生一陀文字,没有换行,没有任何样式!
方法是:

tr.gsub(/<\/?[^>]*>/, "")

比较好的办法是像这篇文章里说的利用REXML和一个队列去完成,下面的评论中提到用 HTMLEntities 可以改善截断问题,但是在测试中发现会有UTF-8 invalid 问题(需要3bytes,只传2bytes,不知道是不是我数据的问题),于是乎放弃HTMLEntities,这样会有一个小bug,截断后末尾会有个乱码,八成是UTF-8 被截断了。

还有一个用 Tidy 的办法貌似很爽,但是在我这的FreeBSD 6.2 + Ruby 1.8.6 + libtidy_051026 + rubytidy 1.1.2 上遇到一个Bug,暂时放弃

谁有什么更好的方法给说一下 :)