所以我以XML字符串的形式从第三方获取数据。
然后我想做以下操作
messageString = Encoding.ASCII.GetString(messageBeingSent);
messageString = messageString.Trim();
XDocument xmlDoc = XDocument.Parse(messageString);
然而,它出错了,给了我一个异常十六进制值0x00为无效字符。第1行,定位x,其中x是字符串中的最后一个字符。
在我看来,一个空终止符正在与字符串一起发送,然后XDocument因为空终止符而翻转。
这个问题的解决方法是什么?
null字符在XML中无效。
你可以传递你想要修剪的字符:
messageString.Trim(' ', ' ', ....);
我不得不说,解决方案似乎很简单
messageString = messageString.replace("0x00", "");
或者如果你确定它是空的:
string s = myEncoding.GetString(bytes.TakeWhile(b => !b.Equals(0)).ToArray());