XDocument Parse String - Null Terminator问题

时间:2011-12-02 16:15:27

标签: c# xml-serialization linq-to-xml

所以我以XML String的形式从第三方获取数据。

我想做以下

messageString = Encoding.ASCII.GetString(messageBeingSent);
messageString = messageString.Trim();

XDocument xmlDoc = XDocument.Parse(messageString);

然而,它出错并给我例外 十六进制值0x00是无效字符。第1行,位置x,其中X是字符串中的最后一个字符。

在我看来,null终止符与字符串一起发送,然后由于null终止符而XDocument翻转。

这是什么解决方案?

2 个答案:

答案 0 :(得分:2)

null字符在XML中无效。

您可以传递要修剪的字符:

 messageString.Trim(' ', '\0', ....);

答案 1 :(得分:-1)

我不得不说解决方案似乎只是

messageString = messageString.replace("0x00", "");

或者如果你确定它是空的:

string s = myEncoding.GetString(bytes.TakeWhile(b => !b.Equals(0)).ToArray());