使用xmlDocument.Load()方法加载xml文件时出现以下错误:
我收到此错误,因为我的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 / oAACIAACIAACIAACIAACIGA7BOAA2E5bQ1MQAAEQAAEQAAEQAAEQwAwA + gAIgAAIgAAIgAAIgAAI2BIBzADYUmtDVxAAARAAARAAARAAAZsnAAfA5rsAAIAACIAACIAACIAACNgSAeU5AEFRaZ4oPfSPikKVaYoqoqIqnpEBAXQGyzZCYJjqw56xrIS ...
此数据之间有'ETB'
答案 0 :(得分:6)
此字符是二进制编码图像数据的一部分。
然后它不应该在XML文档中。 XML文档是 text - 通常,如果要包含任意二进制数据,则需要对其进行64位编码。
这实际上不是C#问题或.NET问题 - 只是您的XML文档无效。