return ST_NO_ERROR+1;
}
buflen=lseek(file,0,SEEK_END);
buf=malloc(buflen);
if(buf==NULL) return ST_NO_ERROR+1;
tempbuf=buf;
ret=lseek(file,0,SEEK_SET);
ret=read(file,buf,buflen);
IsVideoXml(tempbuf);
tempbuf=strstr(tempbuf,"
VideoFrame(tempbuf,&xml->VideoFrame);
counter=VideoButton_Count(src);
*Len=counter;
i=counter;
tempbuf=strstr(tempbuf,"
while(i)
{
VideoButton(tempbuf,&xml->VideoBtn[counter-(i--)]);
tempbuf=strstr(tempbuf,"")+7;
}
close(file);
free(buf);
tempbuf=NULL;
return ST_NO_ERROR;
3.3 解析结果及流程
应用axmlengine.C将图2所示的XML文档解析后,其结果如下:
图3
由如上结果对照图2可见,解析结果完全可靠且正确。其解析流程如下图所示:
图4
4: 结论
本文应用C语言编程解决了基于DOM模型的XML解析工作,成功为上层API函数提供了所需要的数据,使得整体IPTV设计工作大大简化,加快了研发进程,缩短了研发周期,使得IPTV机顶盒大规模生产成为了可能。
参考文献:
[1] 谢质文,杨涛. IPTV产品,运营及案例 电子工业出版社 2008
[2] 倪继利. Linux内核分析及编程 电子工业出版社 2005
[3] 李善平,刘文山,王焕龙. Linux与嵌入式系统 清华大学出版社 2006
[4] Kurt Wall,Mark Watson,Markwhitis. GNU-Linux编程指南,自由软件基金会 1991
[5] 勤研工作室. U-boot 运行机制 http://www.kiyi.com.cn
[6] Peter Jay salzman,Michael Burian,Oripomerantz . THe Linux kenel module programming Guide 2005
[7] Stephen Prata. C primer plus(第五版)中文版 人民邮电出