我在XML文件爲:空白去除在XML使用的libxml2
<Config>
<tlvid id="2">
<type>10</type>
<Devid>001b00100000</Devid>
</tlvid>
<tlvid id="3">
<sessionid>abcd123</sessionid>
</tlvid>
其解析XML文件中的代碼是:
xmlNode *cur_node = NULL,*sub_node = NULL;
xmlChar *key;
cur_node = a_node->xmlChildrenNode;
while(cur_node !=NULL) {
if((!xmlStrcmp(cur_node->name,(const xmlChar*)"tlvid"))) {
key = xmlGetProp(cur_node,(const xmlChar*)"id");
printf("key: %s\n ",key);
xmlFree(key);
sub_node = cur_node->xmlChildrenNode;
while(sub_node !=NULL) {
key = xmlNodeGetContent(sub_node);
printf("subkey: %s\n ",key);
xmlFree(key);
sub_node = sub_node->next;
}
}
cur_node = cur_node->next;
}
輸出爲:
key:2
子項:
子項:10
子項:
子項:001b00100000
子項:
鍵:3
子項:
子項:abcd123
子鍵:
我試過xmlKeepBlanksDefault(0);在while循環下添加以避免空白,但沒有幫助。你能幫我解決這些空白的問題嗎?謝謝。的cur_node
文本孩子的
難道你不能在打印之前檢查'key'是否爲空? –
感謝您的回覆。是的,我已經檢查,但仍然打印相同。打印前給予(鍵)。 –
你應該像'if(strlen(key)!= 0)'或類似的東西來檢查,因爲'key'仍然是一個有效的指針。 –