c# - XMLDocument.Load(),十六进制值0x17,为无效字符

标签 c# xmldocument

使用 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 二进制数据是这样的:

iVBORw0KGgoAAAANSUhEUgAABAAAAAEaCAIAAAAACrKOAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOvwAADr8BOAVTJAAAaz9JREFUeF7tnQVgE03Tx8ODu7u7u7v7i7trcS0Ul+Luxd2Ke7FSrEix4oWixZ3iFErlnd1NLqlQ0sbukv+938eTnOzO/HavmdmdnY0WHByswgECIAACIAACIAACIAACIGAjBMgBwAECIAACIAACIAACIAACIGAjBFQ2oifUBAEQAAEQAAEQAAEQAAEQYOE/oAACIAACIAACIAACIAACIGA7BOAA2E5bQ1MQAAEQAAEQAAEQAAEQwAwA+gAIgAAIgAAIgAAIgAAI2BIBzADYUmtDVxAAARAAARAAARAAAZsnAAfA5rsAAIAACIAACIAACIAACNgSAeU5AEFRaZ4oPfSPikKVaYoqoqIqnpEBAXQGyzZCYJjqw56xrIS...

此数据中有一个“ETB”字符。

最佳答案

This character is a part of binary encoded image data.

那么它不应该在 XML 文档中。 XML 文档是文本 - 通常,如果您想包含任意二进制数据,您可以对其进行 base64 编码。

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

关于c# - XMLDocument.Load(),十六进制值0x17,为无效字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17940283/

相关文章:

c# - 获取由 ASP.NET MVC View 生成的 HTML

c# - 如何在通过子窗体调用时使用启动窗体中的方法启用其控件?

c# - 我的 XPath 有什么问题?

c# - 将 XMLDocument 写入具有特定换行符的文件 (c#)

C#/Linq-to-sql - 锁定 datacontext.Table on insertonsubmit

c# - 打印适合纸张 C#

c# - 使用 TOP 1 插入和删除语句

当文件编码为 Unicode 时,C# XmlDocument.Load(string) 失败

C# 根据不需要的属性值列表从 XMLDocument 中删除整个元素

c# - xml解析错误: hexadecimal value is an invalid character