为什么这段代码只会标记标签,而不是值?
int fromString(char* str)
{
mxml_node_t *root, *node;
root = mxmlLoadString(NULL,str, MXML_TEXT_CALLBACK);
node = root;
const char *textValue;
char bbb [256];
const char *name;
int aaa;
mxmlGetElement(node);
if (!strcmp(mxmlGetElement(node),"Root" ))
{
node = mxmlGetFirstChild(node);
while (name= mxmlGetElement(node))
{
if (!strcmp(name,"AAA" ))
{
cout<<"getting AAA"<<endl;
aaa= mxmlGetInteger(node);
cout<<aaa<<std::endl;
} else
if (!strcmp(name,"BBB" ))
{
cout<<"getting BBB"<<endl;
textValue=mxmlGetText(node,0);
if (textValue!=NULL)
{
strcpy(bbb,textValue);
cout<<textValue<<std::endl;
}
}
node = mxmlGetNextSibling(node);
}
return 0;
} else return -1;
}
int _tmain(int argc, _TCHAR* argv[])
{
fromString("<Root><AAA>12</AAA><BBB>txt</BBB></Root>");
int i ;
cin>>i;
}
输出:
getting AAA
0
getting BBB
答案 0 :(得分:0)
在您显示的XML代码段中:
<Root>
<AAA>12</AAA>
<BBB>txt</BBB>
</Root>
我非常确定12
是一个单独的整数节点,它是AAA
节点的子节点。因此,您必须遍历该节点的子节点,以查找包含的整数。
请参阅文档中的initial node structure example。