【问题标题】:loading xml without invalid character errors在没有无效字符错误的情况下加载 xml
【发布时间】:2010-03-12 15:06:33
【问题描述】:

目前我正在加载 xml,但出现错误:

System.Xml.XmlException: ' ', 十六进制值 0x17,无效 特点。第 2762 行,第 16 位。

这很容易解决。只需打开 xml 并删除字符。

但我需要知道即使使用无效字符也可以加载 xml 并将其用于解析。 有什么缺点吗?

xml 示例:

<?xml version="1.0" encoding="UTF-8"?>
<all>
<sub>
    <summary>this is summary and it might have some invalid chars</summary>
</sub>
<sub>
    <summary>this one is ok</summary>
</sub>
</all>

【问题讨论】:

  • 您能向我们展示有问题的 XML 吗??

标签: c#


【解决方案1】:

其中包含无效字符的 XML 不是 xml。 可能是一个孤立的故障,或者可能预示着整个文件中存在严重的数据损坏 - 有些表现为无效字符(破坏标准阅读器),有些则默默地损坏您的数据而没有你注意到了。

我会将整个事情视为可疑(即拒绝它)并从源头上修复它。

【讨论】:

    【解决方案2】:

    不确定它在 c# 中是如何工作的,但如果你能知道如何让它从“字符串”而不是文件中解析 xml,你可以先将文件加载到“字符串”中,自己过滤字符串,然后发送它关闭用于 xml 解析。

    编辑:

    也许“字符串”是一个糟糕的选择,因为损坏的数据中可能包含 NULL、字节数组或其他一些通用内存流结构?

    【讨论】:

    • 是的,这是可能的,我现在正在使用它,谢谢。 LoadXml(字符串 xml);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 2020-07-26
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    相关资源
    最近更新 更多