पर सी # के एक्सएमएल रीडर का उपयोग कर मैं एक्सएम फाइलों की एक बड़ी श्रृंखला पर सी # के एक्सएमएल रीडर का उपयोग करने की कोशिश कर रहा हूं, वे कुछ चुनिंदा लोगों को छोड़कर ठीक तरह से स्वरूपित हैं (दुर्भाग्य से मैं उन्हें बदलने की स्थिति में नहीं हूं , क्योंकि यह कई अन्य कोड तोड़ देगा)।थोड़ा विकृत एक्सएमएल
त्रुटियां केवल इन अपमानजनक XML फ़ाइलों के एक विशिष्ट भाग से आती हैं और बस उन्हें छोड़ना ठीक है, लेकिन मैं बाकी एक्सएमएल फ़ाइल को पढ़ना बंद नहीं करना चाहता हूं। तो सच में
<InterestingStuff>
...
<ErrorsHere OptionA|Something = "false" OptionB|SomethingElse = "false"/>
<OtherInterestingStuff>
...
</OtherInterestingStuff>
</InterestingStuff>
अगर मैं सिर्फ अवैध टैग को अनदेखा कर सकता है, या पाइप प्रतीक की अनदेखी तो मैं ठीक होगा:
बुरा भागों इस तरह दिखेगा।
XmlReader.Skip() का उपयोग करने का प्रयास करते समय मुझे "ErrorsHere" नाम दिखाई नहीं देता है, जाहिर है कि यह पहले से ही थोड़ा आगे पढ़ता है और अपवाद फेंकता है।
टीएलडीआर: मैं कैसे छोड़ूं ताकि मैं XmlReader का उपयोग कर ऊपर एक्सएमएल फ़ाइल में पढ़ सकूं?
संपादित करें:
कुछ लोग बस की जगह सुझाव दिया '|' -symbol, लेकिन XmlReader का विचार है, पूरी फ़ाइल लेकिन केवल पार भागों आप चाहते हैं लोड नहीं है के बाद से मैं सीधे फ़ाइलों से पढ़ रहा हूँ मैं पूरी फाइलों में पढ़ने का जोखिम नहीं उठा सकता, '|' के सभी उदाहरणों को प्रतिस्थापित करें और फिर भागों को फिर से पढ़ें :)।
प्रतिस्थापित | एक पाठक को लोड करने से पहले साइन इन करें - समस्या को हल कर सकते हैं –
आप XmlReader में जानकारी कैसे पढ़ रहे हैं? क्या आप स्ट्रीम से पढ़ रहे हैं? – Jethro
यदि आप अग्रिम में त्रुटि जानते हैं, तो क्या आप इसे पार्स करने से पहले स्रोत की सामग्री को पैच नहीं कर सकते? लेकिन एक सामान्य तरीके से, आपको स्रोत xml को सही करना चाहिए .... या इसे एक्सएमएल मत कहें (मुझे लगता है कि आप किसी और के आश्रित हैं ...?) –