私は次のようなxmlファイルを持っています:
<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;
}
次のような出力:
キー:2
サブキー:
サブキー:10
サブキー:
サブキー:001b00100000
サブキー:
キー:3
サブキー:
サブキー:abcd123
サブキー:
xmlKeepBlanksDefault(0);を試しました。空白を避けるためにwhileループを追加しましたが、役に立ちませんでした。これらの空の空白を削除するのを手伝ってくれませんか。ありがとう。