if(ee.nodeName()==QObject::tr("测试"))

{

   QDomNodeList list=ee.childNodes();


   for(int i=0;i<list.count();i++)

   {

       QDomNode node=list.at(i);

       if(node.isElement())

       {

           if(node.nodeName()==QObject::tr("F0"))

           {

               F0=node.toElement().text();qDebug()<<F0;

       }

。。。。。。。。。。

}


QDomNodeList list=ee.childNodes();

list.count()的返回值的个数只有2

我的xml文件中明明有39个子项,为什么只取到前2个,其它的都没有?


   (1)我们可以用浏览器检查一下XML的编码格式及内容是否正确。正确的XML文件是可以被IE浏览器直接打开的。我们用IE浏览器检查一下是否能正确地显示。如果显示不正确,我们就要从编码,文件格式来检查这个XML文件了;

   (2)我们再检查一下打开这个XML文件时是否正确,有时候我们并不能成功的打开一个XML,这个问题多数属于上面的问题所导致的。打开文件后要设置一下XML解析的文档内容。我们调用m_dom.setContent(file)这个函数来完成这一过程。有时这一函数调用失败了,由于我们自身代码的原因让其继续往下执行就会出现这一个问题。当设置解析内容失败后要回到上一部检查文件的正确性,文件是否被正确读取等原因;

   (3)然后,我们检查一下我们所取的XML的元素对象是否与我们要判定的元素个数的名字相同,如果元素对象的名称与我们要取的元素对象的名称不一至,就要重新修改代码。确保要操作的对象无误;


    一般情况下完成上面两部检查,都可以正确地解释出XML的内容了。