花了2个小时终于把XPath的数据结构和语法分析做完了。这个XPath的语法完全按照MSDN所说的做,除了减少了2个跟DTD相关的函数和11个Microsoft扩展的"ms:"开头的函数以外,剩下的功能将一概支持。
代码写完了之后,我打开MSDN找里面的几十条XPath Example进行测试,发现了一些Bug,然后修正。现在MSDN所列举的所有例子都通过了,接下来只有自己写Example进行测试了。因为MSDN的例子并没有覆盖所有等价类。
下面是运行结果和测试程序的代码:
#include "..\..\..\..\Library\Platform\VL_Console.h"
#include "..\..\..\..\Library\Data\VL_System.h"
#include "..\..\..\..\Library\Data\VL_Stream.h"
#include "..\..\..\..\Library\XML\VL_XML.h"
using namespace vl;
using namespace vl::platform;
using namespace vl::system;
using namespace vl::stream;
using namespace vl::xml;
void vlmain(VL_Console& Con)
{
Con.SetPauseOnExit(false);
Con.SetTestMemoryLeaks(true);
Con.SetTitle(L"Vczh XML");
while(true)
{
VUnicodeString XPathExpression;
Con.Write(L"输入XPath:");
Con.Read(XPathExpression);
if(XPathExpression==L"")
{
break;
}
else
{
try
{
VL_XPath XPath(XPathExpression);
Con.Write(XPath.ToString());
}
catch(VL_XPathError& e)
{
Con.Write(L"错误:"+e.Message+L"\r\n");
Con.Write(L"位置:"+XPathExpression.Left(e.Start)+L"\r\n");
}
}
Con.Write(L"--------------------------------------------------------------------------------");
}
}
等考完《软件测试方法和技术》之后把查询功能写完。
posted on 2008-06-21 00:34
陈梓瀚(vczh) 阅读(2450)
评论(2) 编辑 收藏 引用 所属分类:
C++