wxXmlDocument loadxml的替代方法
wxXmlDocument loadxml的替代方法
wxXmlDocument 没有loadxml这个方法,有没有别的替代的方式?
Re: wxXmlDocument loadxml的替代方法
建议你使用tinyxml,wx的XML似乎没完善。
Re: wxXmlDocument loadxml的替代方法
我后来查看了 wxXmlDocument 加载的文件的源代码,发现他是从输入流的每次读取1024个字节ChunJiu wrote:建议你使用tinyxml,wx的XML似乎没完善。
然后我自己派生了wxXmlDocumentEX,按照它的方法,把从流读改成了从wxString 读,解决了这个问题,实现了loadxml
Re: wxXmlDocument loadxml的替代方法
你没有试过把wxstring 作为输入流的源?ChunJiu wrote:很棒!赞一个
我对流不太熟,我的想法是如果把 wxstring当成输入流的源,就不用派生出来,直接把流传进去就行了
Re: wxXmlDocument loadxml的替代方法
因为 wxString 本身不是流,所以实现流的功能比较麻烦。xiaxia179 wrote:你没有试过把wxstring 作为输入流的源?ChunJiu wrote:很棒!赞一个
我对流不太熟,我的想法是如果把 wxstring当成输入流的源,就不用派生出来,直接把流传进去就行了
我对它们的使用还是流归流,字串归字串,因为它们的定义很清晰。
如果硬要混在一起,别人会对这些代码感觉很迷糊,包括你自己,哈哈!
因为我早期也是这么干的,最后不得不重新写这些代码。
Re: wxXmlDocument loadxml的替代方法
我已经转到tinyxml了,我用wxxml 读取了一个有上千行的xml文件,发现只读到100多行的时候就报错了,用Loadxml的时候,发现读入数据一旦超过4096字节的时候,也报错了,不知道为什么,不管了,周末刚刚把项目用tinyxml重写了ChunJiu wrote:因为 wxString 本身不是流,所以实现流的功能比较麻烦。xiaxia179 wrote:你没有试过把wxstring 作为输入流的源?ChunJiu wrote:很棒!赞一个
我对流不太熟,我的想法是如果把 wxstring当成输入流的源,就不用派生出来,直接把流传进去就行了
我对它们的使用还是流归流,字串归字串,因为它们的定义很清晰。
如果硬要混在一起,别人会对这些代码感觉很迷糊,包括你自己,哈哈!
因为我早期也是这么干的,最后不得不重新写这些代码。
Re: wxXmlDocument loadxml的替代方法
我早期在使用 wxXML的时候发现它没有完善,所以就换了 tinyXML。xiaxia179 wrote:
我已经转到tinyxml了,我用wxxml 读取了一个有上千行的xml文件,发现只读到100多行的时候就报错了,用Loadxml的时候,发现读入数据一旦超过4096字节的时候,也报错了,不知道为什么,不管了,周末刚刚把项目用tinyxml重写了
wxWidgets 在内部使用一个动态内存分配的技术,虽然在资源分配上比较实用,但有个问题就是会丢数据。
它在重置内存块大小时会偶尔丢掉后面几个字节......实际上就是发现内存块满了就将数据截断抛弃,然后分配一个更大的内存块。
所以我现在使用 wxWidgets 组件的时候,通常自己检查数据块大小,强行分配一个大的数据缓冲区,而不是默认的大小。