所以我以XML String的形式从第三方获取数据。
我想做以下
messageString = Encoding.ASCII.GetString(messageBeingSent);
messageString = messageString.Trim();
XDocument xmlDoc = XDocument.Parse(messageString);
然而,它出错并给我例外 十六进制值0x00是无效字符。第1行,位置x,其中X是字符串中的最后一个字符。
在我看来,null终止符与字符串一起发送,然后由于null终止符而XDocument翻转。
这是什么解决方案?
答案 0 :(得分:2)
null字符在XML中无效。
您可以传递要修剪的字符:
messageString.Trim(' ', '\0', ....);
答案 1 :(得分:-1)
我不得不说解决方案似乎只是
messageString = messageString.replace("0x00", "");
或者如果你确定它是空的:
string s = myEncoding.GetString(bytes.TakeWhile(b => !b.Equals(0)).ToArray());