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 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch