कुछ व्यापक इकाई परीक्षण के लिए बेस क्लास के हिस्से के रूप में, मैं एक सहायक फ़ंक्शन लिख रहा हूं जो एक XmlDocument ऑब्जेक्ट के नोड्स को सी # (.NET) में दूसरे से तुलना करता है। इनमें से कुछ आवश्यकताओं:आप दो एक्सएमएल दस्तावेज़ों की तुलना कैसे करेंगे?
- पहला दस्तावेज स्रोत, उदा है मैं एक्सएमएल दस्तावेज़ की तरह दिखना चाहता हूं। इस प्रकार दूसरा वह है जिसमें मैं अंतर ढूंढना चाहता हूं और इसमें पहले दस्तावेज़ में अतिरिक्त नोड्स शामिल नहीं होना चाहिए।
- एक अपवाद फेंकना चाहिए जब बहुत से महत्वपूर्ण मतभेद पाए जाते हैं, और इसे विवरण में मानव चमक से आसानी से समझा जाना चाहिए।
- बाल तत्व आदेश महत्वपूर्ण है, गुण किसी भी क्रम में हो सकते हैं।
- कुछ विशेषताएं अनजान हैं; विशेष रूप से
xsi:schemaLocation
औरxmlns:xsi
, हालांकि मैं कौन से पास में सक्षम होना चाहता हूं। - नामस्थानों के लिए उपसर्ग दोनों विशेषताओं और तत्वों में मेल खाना चाहिए।
- तत्वों के बीच व्हाइटस्पेस अप्रासंगिक है।
- तत्व या तो में बच्चे तत्व या
InnerText
हैं, लेकिन दोनों नहीं।
जबकि मैं एक साथ कुछ छीन रहा हूं: क्या किसी ने भी ऐसा कोड लिखा है और क्या इसे यहां साझा करना संभव होगा?
एक तरफ, आप पहले और दूसरे दस्तावेज़ों को क्या कहेंगे? मैं उन्हें "स्रोत" और "लक्ष्य" के रूप में संदर्भित कर रहा हूं, लेकिन स्रोत के बाद से यह गलत लगता है कि मैं लक्ष्य जैसा दिखाना चाहता हूं, अन्यथा मैंने अपवाद फेंक दिया है।
नोड्स एक ही हो सकता है लेकिन एक अलग क्रम में घोषित किया जाना? – alexmac
नहीं, नोड्स एक ही क्रम में होना चाहिए। दस्तावेजों की आवश्यकता होने के अलावा, यह थोड़ा सा सरल बना देता है (केवल बच्चों को गिनती है और एक-एक करके जांचें)। –
> विशेषताएँ किसी भी क्रम में अच्छी बात हो सकती हैं, क्योंकि विशेषता परिभाषा द्वारा अनियंत्रित होती है। –