我正在尝试在大量 XML 文件上使用 C# 的 XmlReader,除了少数选择的文件外,它们的格式都正确(不幸的是,我无法更改它们,因为它会破坏很多其他代码)。
这些错误仅来自这些冒犯性 XML 文件的一个特定部分,可以跳过它们,但我不想停止阅读 XML 文件的其余部分。
坏的部分是这样的:
<InterestingStuff>
...
<ErrorsHere OptionA|Something = "false" OptionB|SomethingElse = "false"/>
<OtherInterestingStuff>
...
</OtherInterestingStuff>
</InterestingStuff>
所以真的,如果我可以忽略无效标签,或者忽略管道符号,那么我就可以了。
当我看到名称“ErrorsHere”时尝试使用 XmlReader.Skip() 不起作用,显然它已经提前读取了一点并引发了异常。
TLDR:如何跳过,以便可以使用 XmlReader 读取上面的 XML 文件?
编辑:
有些人建议只替换'|' - 符号,但 XmlReader 的想法是不加载整个文件,而只遍历你想要的部分,因为我直接从文件中读取我无法读取整个文件,替换'|' 的所有实例 然后再次阅读部分:)。