XMLDocument.Load(),十六进制值0x17,是无效字符

时间:2013-07-30 06:58:55

标签: c# xmldocument

使用xmlDocument.Load()方法加载xml文件时出现以下错误:

enter image description here

我收到此错误,因为我的XML中有一些无效字符“ETB”。我怎样才能解决这个问题?该字符是二进制编码图像数据的一部分。

编辑:

<prompt>
   <![CDATA[<FlowDocument xmlns="http://schemas.microsoft.com/something"><Paragraph xmlns="http://schemas.microsoft.com/something"><InlineUIContainer BaselineAlignment="Center">
        <Image Stretch="None" Width="1024" Height="282"><Image.Source><BitmapImage><base64Binary>(Base 64 encoded data containing 'ETB' Text)
   </base64Binary></BitmapImage></Image.Source></Image></InlineUIContainer></Paragraph></FlowDocument>]]>
</prompt>

Base 64 Binary数据是这样的:

  

iVBORw0KGgoAAAANSUhEUgAABAAAAAEaCAIAAAAACrKOAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOvwAADr8BOAVTJAAAaz9JREFUeF7tnQVgE03Tx8ODu7u7u7v7i7trcS0Ul + Luxd2Ke7FSrEix4oWixZ3iFErlnd1NLqlQ0sbukv + 938eTnOzO / HavmdmdnY0WHByswgECIAACIAACIAACIAACIGAjBMgBwAECIAACIAACIAACIAACIGAjBFQ2oifUBAEQAAEQAAEQAAEQAAEQYOE / oAACIAACIAACIAACIAACIGA7BOAA2E​​5bQ1MQAAEQAAEQAAEQAAEQwAwA + gAIgAAIgAAIgAAIgAAI2BIBzADYUmtDVxAAARAAARAAARAAAZsnAAfA5rsAAIAACIAACIAACIAACNgSAeU5AEFRaZ4oPfSPikKVaYoqoqIqnpEBAXQGyzZCYJjqw56xrIS ...

此数据之间有'ETB'

1 个答案:

答案 0 :(得分:6)

  

此字符是二进制编码图像数据的一部分。

然后它不应该在XML文档中。 XML文档是 text - 通常,如果要包含任意二进制数据,则需要对其进行64位编码。

这实际上不是C#问题或.NET问题 - 只是您的XML文档无效。