首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

(~)tinyxml读取xml的有关问题

2012-11-06 
(求救~~)tinyxml读取xml的问题xml部分内容:XML codeplurals nameNalbumsitem quantityone1 albu

(求救~~)tinyxml读取xml的问题
xml部分内容:

XML code
    <plurals name="Nalbums">        <item quantity="one">1 album</item>        <item quantity="other"><xliff:g id="count">%d</xliff:g> albums</item>    </plurals>



请问下如何将<xliff:g id="count">%d</xliff:g> albums这一串完整的读取出来,有没有什么接口的?感觉上其实就是第二个item标签的内容,我用ValueStr()函数他只读取到xliff:g这个字串.



另外还有一个问题,现在有一个泰文的xml需要解析,但是解析出来的全是乱码,代码已经支持了中文俄文等的语言,可就是不支持泰文,请问如何解决????

字符转换代码如下(结果保存在wBuffer中):
C/C++ code
const char* strBuffer = StringElem->FirstChild()->Value();wchar_t wBuffer[10024];wmemset(wBuffer, 0, 10024);MultiByteToWideChar(CP_UTF8, 0, strBuffer, -1, wBuffer, 10024);


附:win7 x64 vs2008 使用unicode字符集

[解决办法]
你这个不符合XML规范吧,只能是tag下包含tag或者值,不能两者共存吧。想实现你这种,可以在tag上加属性就好了,然后读属性。


[解决办法]
1.我都用GetNextElement和GetElementValue来读取内容的
应该找到quantity之后,使用GetFistChildElement来转换

2.
#include “atlconv.h”
USES_CONVERSION

A2W 等于MultiByteToWideChar
W2A 反过来

这个宏方便。用过就知道
[解决办法]
const char* strBuffer = StringElem->FirstChild()->Value();得到的是xliff:g?
那么StringElem->FirstChild()->FirstChild()->Value();应该就是%d了
最后再把属性读出来,自己拼接在一起
[解决办法]
探讨

引用:
你xml内容本身就不符合规范,传统的解析方式肯定费劲,你还想图省事,恐怕没有。


这是Android系统里的字符串资源xml里的,在java里有个函数是getcontent就可以做到

只不过是现在用的不是java么,既然java能做到,C++没道理做不到的,看到你"恐怕"俩字,断定你肯定不知道有还是没有

热点排行