大量の一連のXMLファイルでC#のXmlReaderを使用しようとしていますが、いくつかの選択されたファイルを除いて、すべて適切にフォーマットされています(残念ながら、他の多くのコードが破損するため、変更することはできません。 )。
エラーは、これらの厄介なXMLファイルの特定の部分からのみ発生します。それらをスキップしてもかまいませんが、残りのXMLファイルの読み取りを停止したくありません。
悪い部分は次のようになります。
<InterestingStuff>
...
<ErrorsHere OptionA|Something = "false" OptionB|SomethingElse = "false"/>
<OtherInterestingStuff>
...
</OtherInterestingStuff>
</InterestingStuff>
したがって、無効なタグを無視したり、パイプシンボルを無視したりできれば、大丈夫です。
「ErrorsHere」という名前が機能しない場合にXmlReader.Skip()を使用しようとすると、明らかに少し先を読み取って例外がスローされます。
TLDR:XmlReaderを使用して上記のXMLファイルを読み取ることができるようにスキップするにはどうすればよいですか?
編集:
'|'記号を置き換えることを提案する人もいますが、XmlReaderのアイデアは、ファイル全体をロードするのではなく、必要な部分のみをトラバースすることです。ファイルから直接読み取るため、ファイル全体を読み取る余裕がないため、置き換えます。 '|'のすべてのインスタンス そして、もう一度パーツを読んでください:)。