我想在一大串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(我想你是依賴於別人...?) –