Roy*_* T. 9 .net c# xml malformed xmlexception
我正在尝试在大量的XML文件上使用C#的XmlReader,它们都被正确格式化,除了一些选择的(不幸的是我无法更改它们,因为它会打破很多其他代码).
这些错误只来自这些侵权XML文件的一个特定部分,可以跳过它们,但我不想停止读取XML文件的其余部分.
坏的部分看起来像这样:
<InterestingStuff>
...
<ErrorsHere OptionA|Something = "false" OptionB|SomethingElse = "false"/>
<OtherInterestingStuff>
...
</OtherInterestingStuff>
</InterestingStuff>
Run Code Online (Sandbox Code Playgroud)
所以,如果我可以忽略无效标签,或忽略管道符号,那么我会没事的.
当我看到名称"ErrorsHere"时,尝试使用XmlReader.Skip()不起作用,显然它已经提前读取并抛出异常.
TLDR:我如何跳过这样我可以使用XmlReader读取上面的XML文件?
编辑:
有人建议只更换'|'-symbol,但XmlReader的想法是不加载整个文件但只遍历你想要的部分,因为我直接从文件中读取我无法承受整个文件中的读取,替换"|"的所有实例 然后再次阅读部分:).
我过去对此进行过一些尝试。
一般来说,输入只需格式正确即可。当基本 XML 规则被破坏时,XmlReader 将进入不可恢复的错误状态。避免模式验证很容易,但这与这里无关。
您唯一的选择是清理输入,这可以以流方式(自定义 Stream 或 TextReader)完成,但这需要简单的解析形式。如果有效位置没有管道符号,这很容易。
| 归档时间: |
|
| 查看次数: |
3370 次 |
| 最近记录: |