xml_node lastnode = rootNode.last_child(); if(lastnode == NULL) { newresult = TRUE; } else { newresult=true; while(lastnode!=NULL) { BOOL bSame=true; for(i=0;i<3;i++) { if((type[i] == NULL) || (value[i] == NULL)) { break; } xml_attribute lastattribute=lastnode.attribute(type[i]); if(lastattribute == NULL) { newresult = TRUE; break; } if((strcmp(lastattribute.value(), arr[i]) != 0)) { bSame=false; break; } } if(bSame==true) { newresult=false; break; } lastnode = lastnode.previous_sibling(strbuf); } }
自下往上查找,假如数组里存的是 zhangsan male 16,当在collection里找到的newresult返回false,否则返回true。
<person>
<zhangsan sex="male" age="15" school="xx"/>
<lisi sex="male" age="13" school="xx"/>
<zhangsan sex="male" age="13" school="xx"/>
</person>
注意,最后一个节点zhangsan的 previous_sibling不是lisi而是第一个zhangsan。