請教大牛,我用的是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;
}