读取xml文件该怎么进行遍历啊?C/C++语言
请教大牛,我用的是libxml库,如果我这样,可以把所有都遍历一遍吗?(伪代码)
获得root节点;
curNode = root->children;
while(curNode)
{
xmlTravel = curNode;
while(xmlTravel)
{
xmlTravel = xmlTravel->next;
}
}
对吗?还有什么办法吗?
我希望得到指定的
<属性> 以及
<>内容<>
"内容"该怎么写?
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;
}
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;
}