如何解析xml文件时里面有汉字字符串
来源: 互联网 发布时间:2017-03-20
本文导语: 手机端发过来的消息如下: 终端解析的代码如下: doc = xmlReadMemory(xmlbuf,len,NULL,"UTF8",XML_PARSE_NOBLANKS); if(doc == NULL) { TRACE("doc == NULL"); return false; } root = xmlDocGetRootElement(doc); if(root == NULL) { TRACE("roo...
手机端发过来的消息如下:
终端解析的代码如下:
doc = xmlReadMemory(xmlbuf,len,NULL,"UTF8",XML_PARSE_NOBLANKS);
if(doc == NULL)
{
TRACE("doc == NULL");
return false;
}
root = xmlDocGetRootElement(doc);
if(root == NULL)
{
TRACE("root == NULL");
xmlFreeDoc(doc);
return false;
}
next = root->xmlChildrenNode;
if(next == NULL)
{
TRACE("next == NULL");
return false;
}
我打印xmlbuf,得到的内容跟我发的一样,但是解析的时候doc == NULL了,是不是xmlReadMemory的第五个参数有问题?该如何解决,小弟是新手请大虾们帮帮忙~
终端解析的代码如下:
doc = xmlReadMemory(xmlbuf,len,NULL,"UTF8",XML_PARSE_NOBLANKS);
if(doc == NULL)
{
TRACE("doc == NULL");
return false;
}
root = xmlDocGetRootElement(doc);
if(root == NULL)
{
TRACE("root == NULL");
xmlFreeDoc(doc);
return false;
}
next = root->xmlChildrenNode;
if(next == NULL)
{
TRACE("next == NULL");
return false;
}
我打印xmlbuf,得到的内容跟我发的一样,但是解析的时候doc == NULL了,是不是xmlReadMemory的第五个参数有问题?该如何解决,小弟是新手请大虾们帮帮忙~
|
xmlReadMemory(xmlbuf,len,NULL,"UTF8",XML_PARSE_NOBLANKS)
你这里指定的是UTF8。
可以把XML源文件用UTF8另存一份,再跟原文件十六进制对比一下,看看是不是UTF8嘛。