Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
读取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) { } }