क्या कोई जानता है कि मैं System.Xml.XmlReader की वर्तमान पंक्ति संख्या कैसे प्राप्त कर सकता हूं? मैं रिकॉर्ड करने की कोशिश कर रहा हूं कि फ़ाइल में मुझे एक्सएमएल तत्व मिलते हैं। IXmlLineInfo
इंटरफ़ेस काSystem.Xml.XmlReader (C# और .Net) से वर्तमान पंक्ति संख्या
उत्तर
लाभ उठाएं एक XmlReader
द्वारा समर्थित:
IXmlLineInfo xmlInfo = (IXmlLineInfo)reader;
int lineNumber = xmlInfo.LineNumber;
IXmlLineInfo
इंटरफ़ेस विस्तार करते हुए, इस बात के लिए प्रलेखन बहुत बुरा है, खुदाई करने से थोड़ा, मैं आपको निम्नलिखित बता सकता हूं:
1) System.Xml.XmlReader
अमूर्त है, इसलिए आप कभी भी इसके उदाहरण से निपटने वाले नहीं होंगे, इस तथ्य के साथ कि यह लागू नहीं होता है IXmlLineInfo
व्यापक विषय में नहीं है
2 (हालांकि अगर यह किया था, यह है कि अभी थोड़ा आसानी :) सब कुछ होगा)) System.Xml.IXmlLineInfo
इंटरफ़ेस दो गुण प्रदान करता है: LineNumber
और LinePosition
(जो बातें हम के बारे में परवाह कर रहे हैं) , प्लस एक विधि: HasLineInfo()
जो, दस्तावेज़ीकरण के अनुसार, आपको सूचित करेगा कि कोई कार्यान्वयन लाइनइनोफ़ो लौटा सकता है या नहीं।
3) System.Xml.XmlReader
के दस्तावेज उत्तराधिकारियों में से, हमने:
System.Xml.XmlDictionaryReader - abstract, used by WCF for serialization, no IXmlLineInfo
System.Xml.XmlNodeReader - used when reading a node, no IXmlLineInfo
System.Xml.XmlTextReader - used when reading a stream of data, has IXmlLineInfo
System.Xml.XmlValidatingReader - used when reading a stream of data and validating, has IXmlLineInfo.
उपरोक्त सूची को देखते हुए, XmlDictionaryReader
आंतरिक रूप से उपयोग किया जा रहा है, XmlNodeReader
इस्तेमाल किया जा रहा है जब आप उत्तीर्ण कर ली है एक नोड को पढ़ने के लिए (जिसे, पार्स किया गया है, पहले से ही अपने स्रोत दस्तावेज़ से अनचाहे है), XmlTextReader
और XmlValidtingReader
(जिनमें से दोनों IXmlLineInfo
लागू करते हैं), जब आप किसी दस्तावेज़ से पढ़ रहे हों तो इसका उपयोग किया जा रहा है। तो, इसका लंबा और छोटा यह प्रतीत होता है कि यदि आपको स्थिति की जानकारी देने के लिए यह संभव या उपयोगी है, तो ढांचा ऐसा करेगा।
कहा जा रहा है कि, दस्तावेज़ीकरण बहुत हल्का प्रतीत होता है। सिर्फ यह किया, मैं (_xr System.Xml.XmlReader
की एक अज्ञात ठोस कार्यान्वयन किया जा रहा है) के साथ कर रही है समाप्त हो गया:, कहा जा रहा है जब मैं वास्तव में इसके बाद के संस्करण कोड चलाने
string position = "(unknown)";
if (_xr != null && typeof(System.Xml.IXmlLineInfo).IsInstanceOfType(_xr) &&
((System.Xml.IXmlLineInfo)_xr).HasLineInfo())
{
System.Xml.IXmlLineInfo li = (System.Xml.IXmlLineInfo)_xr;
position = "(" + li.LineNumber.ToString() + "," + li.LinePosition.ToString() + ")";
}
है, उन सभी के साथ
, _xr के प्रकार किया जा रहा समाप्त होता है System.Xml.XsdValidatingReader
(उस पर प्रलेखन खोजने के लिए शुभकामनाएं!), जो System.Xml.XmlReader
से विरासत में है, लेकिन System.Xml.XmlValidatingReader
या System.Xml.XmlTextReader
से प्राप्त नहीं है। इस प्रकार, उपरोक्त की तरह एक दृष्टिकोण का उपयोग करना शायद बुद्धिमान है।
- 1. .NET/C# और जावा
- 2. पंक्ति और कॉलम संख्या
- 3. एक अनुभवी .NET/C# और C++ डेवलपर
- 4. प्रारंभ और अंत पंक्ति संख्या
- 5. पंक्ति संख्या
- 6. .NET 4.0 और C# 4.0
- 7. पंक्ति संख्या()
- 8. पंक्ति संख्या?
- 9. .NET C#
- 10. .NET/C#
- 11. .Net/C#
- 12. वर्तमान पंक्ति सूचकांक
- 13. .NET C#
- 14. .NET C#
- 15. .NET C#
- 16. .NET/C#
- 17. .NET C#
- 18. .NET (C#)
- 19. विभाजन C/C++ में एक पंक्ति
- 20. हाइबरनेट मानदंड और पंक्ति संख्या प्रतिबंध
- 21. अपाचे पीओआई पंक्ति संख्या
- 22. डब्ल्यूपीएफ डाटाग्रिड पंक्ति संख्या
- 23. प्रत्येक पंक्ति की संख्या।
- 24. पुनः प्राप्त तालिका पंक्ति सूचकांक वर्तमान पंक्ति
- 25. जेएमटर वर्तमान थ्रेड संख्या?
- 26. .NET (C#) प्रोजेक्ट
- 27. .NET C# सिंक्रोनस रिसीव
- 28. .net/C# सॉकेट प्रोग्रामिंग
- 29. साइट से छवि डाउनलोड करें .NET/C#
- 30. Json.net C# .net 2.0
खराब अभ्यास की तरह दिखता है। चूंकि XmlReader IXmlLineInfo का वारिस नहीं करता है, तो इस सारणी वर्ग के कार्यान्वयन इंटरफ़ेस को लागू नहीं कर सकते हैं। इंटरफ़ेस के समर्थन के लिए एक चेक की आवश्यकता है। – SerG
IXmlLineInfo xmlInfo = पाठक IXmlLineInfo के रूप में उपयोग करें; यह अच्छा कोड अभ्यास। @shuvra – Shuvra