文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>如何用libxml2库保存带有BOM的xml文件

如何用libxml2库保存带有BOM的xml文件

时间:2010-06-02  来源:championwxd

  这短时间的工作中遇到了解析修改xml文件的问题,摸索之后,从解析到保存一路顺分的走了下来,可是最后的最后flash读xml文件之后显示的却是乱码,查了一些资料后发现原来是utf8的BOM惹的祸(前两篇文章为此部分知识)。

  经过测试只要在xml文件头加上BOM的话,FLASH就会正常显示,因为libxml2库不支持写入BOM,所以现在的问题是怎么将BOM写到文件头。查看libxml2的源码,发现在xmlsave.c文件里有这样一个接口:int xmlDocDump(FILE *F, xmlDocPtr cur),接口说明:Dump an XML document to an open FILE.  哈哈!!!这样就有办法了!
  1.把BOM保存到一个字符数组
  2.用fopen打开一个文件(用“w+”方式),将BOM字符数组写入文件
  3.调用xmlDocDump函数接口,将解析修改后的xml保存到刚打开的文件中
  4.关闭文件
  这样就实现了在xml文件的头部写入BOM。

仅保存部分的源码:

doc在解析之前定义:xmlDocPtr doc;

char BOMbuf[4] = {0xef,0xbb,0xbf,0};

fp = fopen("/tmp/tmpxml", "w+");
fprintf(fp, "%s", BOMbuf);
xmlDocDump(fp, doc);
xmlFreeDoc(doc);
fclose(fp);



欢迎交流!~~~呵呵~~~
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载