XDocument解析字符串- Null终止符问题



所以我以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());

最新更新