2017-04-11 133 views
0
void parseTexto (xmlDocPtr doc, xmlNodePtr cur) { 

    xmlChar *key; 
    cur = cur->xmlChildrenNode; 
    while (cur != NULL) { 
     if ((!xmlStrcmp(cur->name, (const xmlChar *)"text xml:space="preserve""))) { 
      key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 
      printf("texto: %s\n", key); 
      xmlFree(key); 
     } 
    cur = cur->next; 
    } 
    return; 
} 

我上面的函数写在C解析由文本XML指定的XML文档领域:空间=“保留”,但我不能够编译我的程序由于以下错误。XML解析编译错误

parser.c: In function ‘parseTexto’: 

parser.c:102:67: error: expected ‘)’ before ‘preserve’ 

     if ((!xmlStrcmp(cur->name, (const xmlChar *)"text xml:space="preserve""))) 

是否有另一种方式来写字段知道它需要是一个字符串的函数xmlStrcmp?

回答

0

在双引号分隔的字符串中有双引号"。因此,您需要使用反斜杠来避免字符串中的引号:

if ((!xmlStrcmp(cur->name, (const xmlChar *)"text xml:space=\"preserve\""))) {