Posted on 2008-04-21 16:46
vcommon 阅读(1475)
评论(1) 编辑 收藏 引用
VTD xml以下一代xml的处理著称,xsimpleware是一个java开源的VTD xml parser,已经移植到C/c#上.
使用小记:
VTDGen *vg = NULL;
VTDNav *vn = NULL;
UCSChar *string = NULL;
vg = createVTDGen();
if (parseFile(vg,TRUE,"G:\\ximpleware_2.4_c\\ximpleware_2.4_c\\vtd-xml\\examples0\\debug\\input.xml")){
vn = getNav(vg);
if (toElementNS(vn,FIRST_CHILD,L"someURL",L"b")){
int i = getText(vn);
if (i!=-1){
string = toString(vn,i);
wprintf(L"the text node value is %d ==> %s \n",i,string);
free(string);
}
}
free(vn->XMLDoc);
} else {
free(vg->XMLDoc);
}
VTD的效率在DOM和SAX比较上应该是最高的,我认为效率高不等于该用。
VTD抽象出来的数据使xml的处理由简单变为复杂,违背了xml的初衷。
应该在程序设计上把xml简化或者分为多个xml的方法,分阶段和时间处理,合理释放不使用的xml ,始程序达到最优,
这要比为了效率而将xml处理变成晦涩的处理 更加有意义。
xsimpleware并不晦涩,相反在某方面来说还是相当好用的,提供了XPath的查找,相当的方便。
xsimpleware的优势在于对大xml文件处理的效率和对xml的复制,粘贴等操作,对parser和处理xml语义方面要比 DOM或者SAX弱的多。