मैंXDocument.Parse सफलता या विफलता?
XDocument doc = XDocument.Parse(somestring);
उपयोग कर रहा हूँ लेकिन कैसे करना है मैं मान्य करता है, तो स्ट्रिंग somestring
एक अच्छी तरह से गठित XML है। Try Catch
ऐसा करने का एकमात्र तरीका है?
मैंXDocument.Parse सफलता या विफलता?
XDocument doc = XDocument.Parse(somestring);
उपयोग कर रहा हूँ लेकिन कैसे करना है मैं मान्य करता है, तो स्ट्रिंग somestring
एक अच्छी तरह से गठित XML है। Try Catch
ऐसा करने का एकमात्र तरीका है?
क्या ऐसा करने का एकमात्र तरीका पकड़ने का प्रयास करें?
XDocument
के लिए कोई TryParse
विधि नहीं है, इसलिए try-catch
शायद सबसे अच्छा शर्त है। स्कीमा के खिलाफ अपने एक्सएमएल को मान्य करने पर भी विचार करें क्योंकि यह न केवल जांच करेगा कि एक्सएमएल अच्छी तरह से गठित है या नहीं, बल्कि बाधाओं के लिए भी जांच करता है।
आप देख सकते हैं:
var isWellFormedXml = true;
try
{
using (var reader = XmlReader.Create(stream)) // can be a mem stream for string validation
{
while (reader.Read()) {}
}
}
catch
{
isWellFormedXml = false;
}
इस तरह आप नहीं है: Validation Against XML Schema (XSD) with the XmlValidatingReader
लिंक बदल गया है - संपादित एफवाईआई। – simonalexander2005
@ simonalexander2005, संपादन के लिए धन्यवाद – Habib
आप केवल कि क्या दस्तावेज़ अच्छी तरह से बनाई है जांच करने की आवश्यकता है, तो सबसे तेज़ तरीका है के रूप में इस XmlReader उपयोग करने के लिए है XDocument डोम के लिए स्मृति खर्च करें। बीटीडब्ल्यू, एक्स डॉक्यूमेंट.पर्स() एक्सएमएल प्रोसेसिंग के लिए एक्सएमएल रीडर का उपयोग करता है, इसलिए अपवाद समान हैं, अगर आपको उनका विश्लेषण करने की आवश्यकता है।
एक्सएमएल दस्तावेजों को हमेशा अच्छी तरह से गठित माना जाता है क्योंकि वे आम तौर पर मशीन से उत्पन्न होते हैं। उस नियम के अपवादों की रिपोर्ट अच्छी तरह से की जाती है, अपवाद :) –