+ -
当前位置:首页 → 问答吧 → 关于tinyxml解析文件请教。

关于tinyxml解析文件请教。

时间:2011-08-09

来源:互联网

如下是这个xml文件的内容,
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Info>
  <SingleCity CityCode="010">
  <stu_name>hami</stu_name>
  </SingleCity>
  <SingleCity CityCode="020">
  <stu_name>hami2</stu_name>
  </SingleCity>
  <SingleCity CityCode="021">
  <stu_name>hami3</stu_name>
  </SingleCity>
</Info>

我用以下代码循环判断SingleCity的个数
C/C++ code

TiXmlElement *personElement = personDoc->RootElement();    
    TiXmlElement*SiblingElement = personElement->FirstChildElement();
    int i=0;
    while ( SiblingElement != NULL )
    {    
                i++;    
        cout<<SiblingElement->Value()<<endl; 
        SiblingElement = SiblingElement->NextSiblingElement();
    }


可是通过跟踪调试,SiblingElement 就是无法遍历到<SingleCity CityCode="021">,求各位网友给点提示,谢谢!

作者: gisupc   发布时间: 2011-08-09

TiXmlElement *personElement = personDoc->RootElement();  
TiXmlElement*pElem= personElement->FirstChildElement();
for( pElem; pElem; pElem=pElem->NextSiblingElement())
{
  cout<<pElem->Value()<<endl; 
}

作者: qwawj   发布时间: 2011-08-09

引用 1 楼 qwawj 的回复:

TiXmlElement *personElement = personDoc->RootElement();
TiXmlElement*pElem= personElement->FirstChildElement();
for( pElem; pElem; pElem=pElem->NextSiblingElement())
{
cout<<pElem->Value()<……


谢谢你的解答,我发现你的方法和我的本质上是一样的。
经过测试,这个运行在正确与否,与xml有关系,将上述xml改成:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Info>
  <SingleCity CityCode="010">
  <Name StnName="张三" />
  </SingleCity>
  <SingleCity CityCode="020">
  <stu_name>hami2</stu_name>
  </SingleCity>
  <SingleCity CityCode="021">
  <stu_name>hami3</stu_name>
  </SingleCity>
</Info>
运行就是不正确,郁闷!

作者: gisupc   发布时间: 2011-08-09