大量のXMLファイルでC#のXmlReaderを使用しようとしていますが、いくつかの選択肢を除いてすべて正しくフォーマットされています(残念ながら、なぜなら、それは他の多くのコードを壊すからです)。C#のXmlReaderをわずかに不正な形式のXMLで使用する
エラーは、これらの偽のXMLファイルの特定の部分から来ているだけですが、スキップするだけでOKですが、XMLファイルの残りの部分は読んでいません。
悪い部分は次のようになります。私は、無効なタグを無視、またはパイプ記号を無視することができれば
<InterestingStuff>
...
<ErrorsHere OptionA|Something = "false" OptionB|SomethingElse = "false"/>
<OtherInterestingStuff>
...
</OtherInterestingStuff>
</InterestingStuff>
だから、本当に、私は大丈夫だろう。
"ErrorsHere"という名前が表示されているときにXmlReader.Skip()を使用しようとしても動作しませんが、明らかに先読み済みで例外をスローします。
TLDR:XmlReaderを使用して上記のXMLファイルを読むことができるようにするにはどうすればよいですか?
編集:
一部の人々は、単に置き換える提案|私は、ファイルから直接読んでいるので、私は、-symbolを、しかし、XmlReaderののアイデアはファイル全体をロードしないことですが、あなたがしたいだけトラバースパーツ「」ファイル全体の読み込みに余裕がない、 '|'のすべてのインスタンスを置き換えるもう一度パーツを読んでください:)。
交換|読者を読み込む前に署名する - 問題を解決する可能性があります –
どのようにXmlReaderに情報を読み込んでいますか?ストリームから読んでいますか? – Jethro
事前にエラーがわかっている場合、解析する前にソースの内容を修正することはできませんか?しかし、一般的な方法では、ソースXMLを修正する必要があります....またはXML(私はあなたが他の誰かに依存していると思います...) –