我想在一大串XML文件中使用C#的XmlReader,它们都被正确地格式化,除了一些选择的(不幸的是我不能让它们改变,因为它会打破很多其他代码)。使用C#的XmlReader稍微畸形的XML
错误只来自这些濒临XML文件的特定部分,可以跳过它们,但我不想停止阅读XML文件的其余部分。
坏的部分是这样的:
<InterestingStuff>
...
<ErrorsHere OptionA|Something = "false" OptionB|SomethingElse = "false"/>
<OtherInterestingStuff>
...
</OtherInterestingStuff>
</InterestingStuff>
所以真的,如果我可以忽略无效的标签,或忽略管道符号,那么我会好的。
尝试使用XmlReader.Skip(),当我看到名称“ErrorsHere”不起作用时,显然它已经读取了一点并引发异常。
TLDR:如何跳过以便我可以使用XmlReader读取上述XML文件?
编辑:
有些人建议只更换“|” - 符号,但XmlReader中的想法是不加载你想整个文件,但只有横向部分,因为我直接从文件中读取我无法承担读取整个文件,替换'|'的所有实例然后再读部分:)。
取代|加载阅读器之前签署 - 可以解决问题 –
你如何阅读信息到XmlReader?你正在阅读流吗? – Jethro
如果您事先知道错误,您是否可以在解析源代码之前修补源代码的内容?但以一般的方式,你应该改正源XML ...或不要称之为XML(我想你是依赖于别人...?) –