存档

2010年9月 的存档

一个基于SAX方法Html解析器(HtmlParser)

2010年9月27日 12 条评论

在开始写本文的有必要简单介绍一下SAX,SAX的全称是Simple API for XML,它是一种流式的解析XML文件的方法。它的大致思想是用户向解析器注册一些回调函数,解析器在解析页面的过程中,当特定的事件发生的时候,调用对应的回调函数,完成用户指定的任务。想要详细了解SAX的读者朋友,可以参考:http://en.wikipedia.org/wiki/Simple_API_for_XML。本文所介绍的就是一个用SAX思想实现的HtmlPaser。

  • 1. 如何获取HtmlParser?
  • 可以从http://code.google.com/p/xiao5geproject/source/browse/trunk/htmlparser/获取HtmlParser的源码,任何个人或组织都可以免费使用,如你在使用的过程中发现任何问题,都可以在这里留言。 阅读全文…

    手把手教你玩转GDB(四)——–函数调用栈(call stack)探密

    2010年9月23日 10 条评论

    本文是GDB系列的第四篇,感兴趣的朋友可以阅读本系列的前三篇。本文的主要内容是讲如何用GDB来查看C/C++程序中函数调用栈(call stack)的相关信息,通过介绍一些相关的命令及其用法,让读者朋友能够循序渐进了解调用栈的各个方面,更好的驾驭程序。下面开始今天的内容。

    我们知道,通常一个程序的运行,不外乎是A函数调用B,B函数调用C等等,等所有的调用都完成后,整个程序的运行也就ok了。在这个过程中,每当有新的函数调用,系统都会把该函数的一些信息,包括函数的参数,以及一些寄存器的值等,保存到调用栈(call stack)上。等该函数运行完成后,这些信息再从调用栈上弹出(pop)。如下图所示,是一个完整的调用栈:

    在上图中,整体叫做调用栈(call stack),每一行叫做一桢(frame)。我们来看看桢信息的组成有哪些: 阅读全文…

    一个轻量级C++单元测试框架——ztest

    2010年9月6日 12 条评论

    之前也看过别人写的一些单元测试框架,google的gtest算是比较有名的了,还有其它一些,基本实现都大同小异。总的来说,gtest显得有些重量级,另外的一些,测试用例不能分组,所有的用例只能一起运行,感觉不是很方便。周末的时候,折腾了一个相对比较轻量级的单元测试框架,命名为ZTest, 通过定义不同的测试类,可以支持对用例进行分组。下面从四个方面,对ZTest做一个介绍:

  • 1. ZTest是什么?
  • ZTest是一个轻量级的c++程序单元测试框架

  • 2. 如何获得ZTest?
  • 可以从google code:http://xiao5geproject.googlecode.com/svn/trunk/ztest 处获得ZTest的源码。

  • 3. 如何使用ZTest?
  • 阅读全文…

    UML中类之间的关系小结

    2010年9月4日 1 条评论

    好久没用UML的东东了,有点记不太清了,最近要用到了,做个简单的复习。UML中类之间的关系一直让人觉得很容易混淆的东东,这里记录一下今天复习的时候整理的笔记,希望对感兴趣的朋友有所帮助。

  • 1. 关联
  • 关联用来描述类与类之间的连接关系。关联一般是双向的,即关联的对象双方彼此都能与对方通信。换言之,如果两个类的对象之间存在可以互相通信的关系,或者说对象双方能够感知另一方,那么这两个类之间就存在着关联关系。
    关联 阅读全文…