- 博客(1)
- 资源 (3)
- 收藏
- 关注
原创 封装MS XML的类
生成XML示例代码: #include "XMLMake.h" XMLMake xm; IXMLNode* pRootNode = xm.AddNode(0, _T("library")); IXMLNode* pBookNode = xm.AddNode(pRootNode, _T("book")); xm.SetAttr
2005-12-22 23:26:00 1026
让Expat支持中文XML示例代码
刚学习Expat的时候,发现Expat并不支持中文XML的解析,因此对其进行了封装,内附编译好的可执行程序及测试用XML文件,命令行:ExpatSaxDemo demo.xml
详细信息参见:http://blog.csdn.net/medie/archive/2005/04/26/364180.aspx
2009-07-01
如何让Expat支持中文XML
刚刚学习使用Expat,却发现Expat并不支持中文。后来查找相关资料,得知Expat不支持gb2312编码格式,主要支持UTF-8编码格式。然而我们在程序中传递数据时,往往是用的gb2312格式文本的,于是想找出办法解决之,想到两种办法:
1、改写Expat源代码,这样效率高,但不方便今后Expat代码的升级;
2、首先将gb2312格式的文本转换为UTF-8格式文本,然后让Expat解析,解析出的数据再转换为gb2312格式以方便处理。效率较第一种方法低。
最终选择了第二种方法解决该问题。。
示例代码:http://www.yanghan.net/codes/ExpatSaxDemo.rar
Expat源代码:http://www.yanghan.net/codes/Expat-1.95.8.rar
代码中CCodingConv为gb2312和UTF-8互相转换的类,CGB2312XML为接收解析数据的类,使用SAX方式解析,该类支持gb2312格式的xml文件,当然也可以支持UTF-8格式的xml文件。
为便于理解,Demo程序将解析出的xml数据仍按xml的样子输出到屏幕上,且将"<"、">"符号换为了"["、"]"。
内附编译好的EXE,用法:ExpatSaxDemo demo.xml
以下便是输出结果:
[library]
[book format="16开" pages="900"]
[!--This is a comment demo--]
[书名]C++程序设计语言(特别版)[/书名]
[author]
[name]Bjarne Stroustrup[/name]
[nationality]United States[/nationality]
[/author]
[翻译]
[译者]裘宗燕[/译者]
[出版社]机械工业出版社[/出版社]
[/翻译]
[/book]
[/library]
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/medie/archive/2005/04/26/364180.aspx
2009-06-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人