W3CHINA Blog首页    管理页面    写新日志    退出

Blue blue sky

继续与Xerces-C搏斗
小工头 发表于 2005/5/11 21:32:05

绕过中文字符处理这一关,问题就比较明确了。Xerces-C自带一个ierater的例子,实现了从XML生成DOM树然后遍历的功能。俺只要在这个基础上加入查找/替换的代码就可以了。 说起来简单,做起来难。俺面对的需求是:set id="***" where date="###"(用SQL语言来写真是简单明了……以后要学习XPath)。因此,需要首先找到符合条件的项将其定位,然后再对将要修改的项进行操作。iterater这个例子仅仅针对一项进行了操作,所以俺得改。 根据上面的分析,接口的输入参数会很长。查找的项的名称,查找的项的关键字,待替换的项的名称,还有准备替换的值,这四项肯定要。为了防止缓冲区溢出造成程序崩溃,需要考虑恶意输入参数的问题,所以还要加上这四项的长度。然后还要确定查找范围。只在元素范围找?只在属性范围找?还要支持组合查找……啊~~~~~晕了。 连续想了几个小时,头都疼了。最后决定不想那么复杂了,先把基础功能实现了再说。不想把参数表搞得那么麻烦,决定分成两个,接口,一个负责查找,一个负责替换。这样就简单多了,两个接口的代码基本上是一样的,只有两三行不一样。从代码简化的角度来说,这是极大的浪费。可是,从提高程序可读性的角度来说,这是一个不错的选择。看来一味追求代码重用也不行。今天又破除了一个迷信。 测试的时候发现了问题。为了实现全文查找并替换的功能,必须交替调用Find()和Replace()。问题是,调用Find()之后,暂存的指针指向当前要处理的项;而调用Replace()之后,指针并没有改变。此时再调用Find()就成了死循环。试着用iterater例子里面的代码写了一个FindNext(),发现不起作用。看来还要继续研究。

阅读全文(1585) | 回复(0) | 编辑 | 精华

 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 
 



This is home

.: 公告

有人的地方就有恩怨

有恩怨的地方就是江湖

人在江湖漂,谁能不挨刀


Bloginess

«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31

.: 我的分类(专题)

首页(629)
杂项(69)
我喜欢过的声音(35)
耳机评测(18)
七天乐(127)
工作八卦(174)


In the Bowl

.: 最新日志

变化:俺的2012
迟来的总结,俺的2011
暂停更新:娶了媳妇不上网
一次坦诚的大会
妹子,妹子!
领导满月
当了领导能怎样
俺的播放列表
俺的重构总结
开会的故事

.: 最新回复

回复:迟来的总结,俺的2011
回复:暂停更新:娶了媳妇不上网
回复:暂停更新:娶了媳妇不上网
回复:小学生作文之记一次拔河比赛
回复:暂停更新:娶了媳妇不上网
回复:暂停更新:娶了媳妇不上网
回复:暂停更新:娶了媳妇不上网
回复:一次坦诚的大会
回复:一次坦诚的大会
回复:一次坦诚的大会


The Fishkeeper
blog名称:少年包工头的工作日记
日志总数:629
评论数量:1458
留言数量:56
访问次数:8973938
建立时间:2004年12月8日



Text Me

.: 留言板

签写新留言

你太客气了
工作是为了更好的生活。。。
飘过!
初烧耳机
路过留声
自动浇花
节日快乐
向您请教
HAHA
咨询下呵呵


Other Fish in the Sea

.: 链接



Lake JJ

真!鱼家MM

传说中的99

王小四的自留地

挣扎中的职场新人tintin同学




站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.516 second(s), page refreshed 144757674 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号