hair_man 2015-08-24 23:37 采纳率: 51.6%
浏览 2420
已采纳

读取xml文件该怎么进行遍历啊?C/C++语言

请教大牛,我用的是libxml库,如果我这样,可以把所有都遍历一遍吗?(伪代码)
获得root节点;

 curNode = root->children;
while(curNode)
{
      xmlTravel = curNode;
      while(xmlTravel)
       {
                            xmlTravel = xmlTravel->next;
       }
}

对吗?还有什么办法吗?
我希望得到指定的
<属性> 以及
<>内容<>
"内容"该怎么写?

  • 写回答

2条回答 默认 最新

  • qq1223386926 2015-08-25 13:35
    关注

    int GetProperNode( xmlNodePtr xmlCur, char cpNodeName, char *cpPropName, char *cpValue )
    {
    char *cpProp = NULL;
    while( xmlCur != NULL )
    {
    if( xmlStrcmp( xmlCur->name, ( const char * )cpNodeName ) == 0 )
    { /
    找到了想要的属性 */
    cpProp = ( char * )xmlGetProp( xmlCur, BAD_CAST cpPropName );
    strcpy( cpValue, cpProp );
    xmlFree( cpProp );
    return 1;
    }

        if( xmlCur->xmlChildren != NULL )
        {   /* 如果还有子节点,继续遍历 */
            if( GetProperNode( xmlCur->xmlChildren, cpNodeName, cpPropName, cpValue ) )
            {
                return 1;
            }
        }
    
        /* 兄弟节点 */
        xmlCur = xmlCur->next;
    }
    
    return 0;
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器