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

cparse类解析xml遇到奇怪有关问题

2012-01-24 
cparse类解析xml遇到奇怪问题XML code?xml version1.0 encodingutf-8 ?rootcodeLOGIN_SUCCESS

cparse类解析xml遇到奇怪问题

XML code
<?xml version="1.0" encoding="utf-8" ?><root><code>LOGIN_SUCCESSFUL</code><channel><item><id>57</id><title>sample</title><hwid>18:20:10:00:00:16</hwid><uri>rtsp://192.168.1.2:8212/H264</uri><sms>0</sms></item><item><id>165</id><title>摄像头0012</title><hwid>18:20:10:02:00:12</hwid><uri>rtsp://192.168.1.2:8322/H264</uri><sms>0</sms></item><item><id>223</id><title>摄像头026C</title><hwid>18:20:10:02:02:6C</hwid><uri>rtsp://192.168.1.2:8322/H264</uri><sms>0</sms></item><item><id>225</id><title>摄像头006F</title><hwid>18:20:10:02:00:6F</hwid><uri>rtsp://58.210.32.35:8208/H264</uri><sms>0</sms></item><item><id>254</id><title>摄像头222B</title><hwid>18:20:10:02:22:2B</hwid><uri>rtsp://58.210.32.35:8858/H264</uri><sms>0</sms></item><item><id>297</id><title>摄像头009A</title><hwid>18:20:10:02:00:9A</hwid><uri>rtsp://58.210.32.36:8552/H264</uri><sms>0</sms></item><item><id>315</id><title>公司门口</title><hwid>18:20:10:02:01:24</hwid><uri>rtsp://192.168.1.2:8568/H264</uri><sms>0</sms></item><item><id>426</id><title>东面走廊</title><hwid>18:20:10:02:01:12</hwid><uri>rtsp://58.210.32.35:8586/H264</uri><sms>0</sms></item></channel><mobile><number>11122298765</number><notes>q</notes><setbind>0</setbind></mobile></root>

上面是我保存的xml文档。我解析该文档,出现如下问题
<title>摄像头006F</title>这一条不能正确解析。他会把这一条保存为两条 分别为“摄像”和“头006F”。经过多次实验,发现是在这个位置会出现如下问题。
通过解析其他xml对比发现,是因为有<title>sample</title>这一条。如果把英文换为有中文的,就不会出现该问题。
一下是我的解析函数:
[code=C]/C++void CXmlHandler::OnStartElementL(const RTagInfo& aElement,
                const RAttributeArray& aAttributes, TInt aErrorCode)

        {

        //        const TDesC8& elementName = aElement.LocalName().DesC();
        //          if(elementName.Compare(KCode) == 0)
        if (aElement.LocalName().DesC() == _L8("code"))
                {
                iState = 1;

                }
        //          else if(elementName.Compare(KTitle) == 0)
        else if (aElement.LocalName().DesC() == _L8("title"))
                {
                iState = 2;

                }
        //  else if(elementName.Compare(KUri) == 0)
        else if (aElement.LocalName().DesC() == _L8("uri"))
                {
                iState = 3;

                }
        else if (aElement.LocalName().DesC() == _L8("id"))
                {
                iState = 4;



                }
        else if (aElement.LocalName().DesC() == _L8("setbind") || aElement.LocalName().DesC() == _L8("sms"))
                {
                iState = 5;

                }
        else if (aElement.LocalName().DesC() == _L8("hwid"))
                {
                iState = 6;
                }

        }[/code]

[解决办法]
那你就搜搜KFileBufferSize ,哪里用到了,就知道问题出在哪里了。

热点排行