我是 libxml2 的新手并从一个示例开始,我不明白为什么我的示例代码没有读取某些标签。我以这种方式拥有我的 XML 文件。
<ACCOUNTS>
<ACCOUNT NO="123">
<STATE>GA</STATE>
<NAME>John</NAME>
</ACCOUNT>
<ACCOUNT NO="123">
<STATE>GA</STATE>
<NAME>Burgess</NAME>
</ACCOUNT>
</ACCOUNTS>
这是我的示例代码:
void getReference (xmlDocPtr doc, xmlNodePtr cur) {
xmlChar *uri;
xmlChar *value;
cur = cur->xmlChildrenNode;
while (cur != NULL) {
if ((!xmlStrcmp(cur->name, (const xmlChar *)"ACCOUNT"))) {
uri = xmlGetProp(cur,(const xmlChar*) "NO");
printf("uri: %s\n", uri);
xmlFree(uri);
}
cur = cur->next;
}
return;
}
当我调试时,我注意到它第一次进入 ACCOUNT 标签并获取值,然后转到下一个 ACCOUNT 标签,忽略 STATE 和 NAME 标签。这个程序有什么问题,这是正确的方法吗?