0

我有一个包含以下内容的 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 检索它,但我想知道这段代码有什么问题..

4

0 回答 0