读取xml报16进制字符错误
思韵闪耀
2018-01-25
0

读取xml报16进制字符错误,因为xml文件中包括特殊字符,如u0018,造成解析错误
解析方法:剔除xml特殊字符再读取

  private string RemoveInvalidXmlChars(string text)
        {
            var validXmlChars = text.Where(ch => XmlConvert.IsXmlChar(ch)).ToArray();
            return new string(validXmlChars);
        }

private void OnRecvMessage(string Message) //接收到插件发来的消息触发该事件
        {
            try
            {
                RtxMessage rm = new RtxMessage();

                StringReader sr1 = new StringReader(RemoveInvalidXmlChars(Message.Content));//避免0/这种异常字符
                XmlReader xr1 = XmlTextReader.Create(sr1); // xr1's type is XmlTextReaderImpl

                while (xr1.Read())
                {
                    if (xr1.Name == "Item")
                    {

                        switch (xr1["Key"])
                        {
                            case "Mode": { if (xr1.Read()) { rm.Mode = xr1.Value; }; break; }
                            case "Content": { if (xr1.Read()) { rm.Content = GetContent(xr1.Value); }; break; }
                            case "Initiator": { if (xr1.Read()) { rm.Initiator = xr1.Value; }; break; }
                            case "Key": { if (xr1.Read()) { rm.Key = xr1.Value; }; break; }
                            case "Title": { if (xr1.Read()) { rm.Title = xr1.Value; }; break; }
                            case "im_message_id": { if (xr1.Read()) { rm.im_message_id = xr1.Value; }; break; }
                            default: { break; }
                        }
                    }
                }

            }
            catch (COMException xe)
            {

            }

        }

【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

热门资讯

读取xml报16进制字符错误 读取xml报16进制字符错误,因为xml文件中包括特殊字符,如u0018,造成解析错误 解析方法:剔...
C# 二次开发RTX实现右下角... 效果图: 接入步骤: 1.下载RTX完全安装包:http://rtx.tencent.com/rtx...
asp 连接sqlserver... 第一种 - 这种方法用在ACCESS中最多 strconn = DRIVER=Microsoft A...
ASP加密技术简析 加密技术是信息安全采取的主要安全保密措施,是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(...
quarz+topself实... quarz:用来灵活的调度程序的执行 topself:用来将应用提升为服务 一,建立控制台应用程序,...
choost与iif的注意点 对于多值函数,但值类型不一致时,则以第一个为主进行转换 如: SELECT CHOOSE(2,1.0...