Ik zit hier nu met iets dat ik niet helemaal begrijp. Ik heb bezig om met behulp van libxml2 een xml file te gaan lezen. Ik heb nu een dood simpele class gemaakt om via de libxml2 functies een bepaalde xml file te gaan dumpen naar stdout.
Ik heb volgende code om een xmlNodePtr te gaan dumpen (recursief).
De members node->name en node->content zijn van het type "xmlChar *" , waarbij xmlChar een gewone define is van "unsigned char".
Wat doe ik verkeerd ?
Ik heb volgende code om een xmlNodePtr te gaan dumpen (recursief).
C++:
Het vreemde is dat ik de lijn met (1) nooit te zien krijg, terwijl de lijn met (2) wel goed tevoorschijn komt. Er moet dus iets verkeerds zijn met std::cout, maar ik zie niet wat, aangezien de printf wel vrolijk de inhoud print.1
2
3
4
5
6
7
8
9
10
| void XmlDumper::DumpNode( xmlDocPtr doc , xmlNodePtr node ) { while( node != NULL ) { xmlChar * nodeText = xmlNodeListGetString( doc , node , 1 ); std::cout << "(1)<" << node->name << ">" << node->content << "</" << node->name << ">" << std::endl; printf( "(2)<%s>%s</%s>\n" , node->name , node->content , node->name ); XmlDumper::DumpNode( doc , node->xmlChildrenNode ); node = node->next; } } |
De members node->name en node->content zijn van het type "xmlChar *" , waarbij xmlChar een gewone define is van "unsigned char".
Wat doe ik verkeerd ?