【发布时间】:2012-05-24 18:29:42
【问题描述】:
我是 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 标记。这个程序有什么问题,这是正确的方法吗?
【问题讨论】: