如何让Expat支持中文XML

时间:2012-07-20 06:24:00
【文件属性】:

文件名称:如何让Expat支持中文XML

文件大小:61KB

文件格式:RAR

更新时间:2012-07-20 06:24:00

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


【文件预览】:
ExpatSaxDemo
----ExpatSaxDemo.dsp(5KB)
----StdAfx.cpp(299B)
----ReadMe.txt(1KB)
----StdAfx.h(769B)
----ExpatSaxDemo.dsw(547B)
----ExpatImpl.h(19KB)
----demo.xml(367B)
----Release()
--------ExpatSaxDemo.exe(144KB)
--------demo.xml(309B)
----CodingConv.cpp(2KB)
----CodingConv.h(1KB)
----ExpatSaxDemo.cpp(3KB)

网友评论