比如我有一个XML文件
<Sample_Setting>
<num>555</num>
</Sample_Setting>
我需要查找tag num中的数字是多少,在下面的代码中
1 TCHAR* node_temp = static_cast<TCHAR*>(XMLElement->nodeName);
2 XMLElement->get_text((BSTR*)(&value_tmp));
3 if(wcscmp(node_temp, L"num") == 0) //breakpoint, when stop here, always find that nodeName (也就是node_temp)= "555" and nodeValue(也就是value_temp) = "555", why nodeName = "num"?
4 {
5 ......
6 }
XMLElement已经指向<num>555<num1>这个标签,在第3行设置断点,在程序运行在断点时,发现总是nodeName = "555" and nodeValue = "555",此时不是应该
nodeName = " num"吗?
我为这个问题纠结得好心瘁啊!!!!!!
终于,我在第2行处设置个断点,程序停下来的时候,我发现node_temp确实是num, 而当程序执行到3行时,node_temp又变成了555? 天啊,这意味着执行了
XMLElement->get_text之后,XMLElement已经发生了变化??
最后总结出两点:
1.对于 这个标签<num>555</num>,其实是包括两个node,一个是<num></num>,另一个555
2.执行XMLElement->get_text时,指针会自动从<num></num> 这个node 跳转到555 这个node
不知道这么理解是否正确。本人对DOM XML是新手,请各位不吝赐教.