c libxml列出具体内容

时间:2013-01-13 13:11:06

标签: c xml libxml2

我有一个包含以下内容的xml文件

<?xml version="1.0" encoding="UTF-8"?>
<vm_list>
<vm name="Win2k_SQL2000 (1)" type="VM">53370afc-7b57-360c-a7a1-236f40535064</vm>
<vm name="WinXP_PRO_SP3_en_x86 (1)" type="VM">89b6d54c-4015-119b-db11-bfecf42688e6</vm>    
</vm_list>

以下是获取节点内容“vm”

的代码的一部分
cur = xmlDocGetRootElement(doc); 
while(cur ! = NULL){
puts("loop");
if (cur->type == XML_ELEMENT_NODE)
    {
      if (!(xmlStrcmp(cur->name, (const xmlChar *) "vm")))
        {
          key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
          puts((char *) key);
          xmlFree(key);
        }
    }
 cur = cur->next;
 }

但它给了我以下结果:

loop
loop
53370afc-7b57-360c-a7a1-236f40535064
loop
loop
89b6d54c-4015-119b-db11-bfecf42688e6
loop

当然我可以通过xPath检索它,但我想知道这段代码有什么问题。

0 个答案:

没有答案