2012-11-23 11 views
6

मैं Autodesk कंपनी द्वारा बनाई गई PackageContents.xml फ़ाइल के साथ काम करने के लिए LINQ से XML का उपयोग करता हूं। कंपनी ने इस एक्सएमएल फ़ाइल here की संरचना को परिभाषित किया है, लेकिन एक्सएसडी स्कीमा के बिना।LINQ से XML: गुणों के मामले को अनदेखा करना

मुझे कोई समस्या है: यह कंपनी अपने नियमों को तोड़ती है ... अक्सर तत्वों और विशेषताओं का मामला अमान्य है। उदाहरण के लिए, "यूआरएल" विशेषता के बजाय "यूआरएल" विशेषता परिभाषित की जा सकती है (अलग आवरण)।

लेकिन case is important for XML (या, in English):

तत्व के नाम की तरह, विशेषता नाम केस संवेदी होते हैं और एक पत्र के साथ शुरू या अंडरस्कोर चाहिए।

"यूआरएल" बराबर नहीं है "यूआरएल" - ऐसी विशेषता नहीं मिलेगी।

क्या मैं LINQ से XML (या अन्य) के माध्यम से इस समस्या को हल कर सकता हूं, या मैं नहीं कर सकता?

उत्तर

6

हालांकि यह सही है कि myXelement.Attribute("URL") सही मामले की आवश्यकता होगी है, वहाँ आप को रोकने के लिए कुछ भी नहीं कर रही है

var attribute = x.Attributes() 
       .SingleOrDefault(xa => 
        string.Equals(xa.Name.LocalName, 
            "Url", 
            StringComparison.InvariantCultureIgnoreCase)); 

लपेटें यह एक उपयुक्त विस्तार या स्थिर सहायक विधि में है और अपने उपभोक्ता कोड बहुत बुरा नहीं होना चाहिए।

+0

धन्यवाद! तुम सही हो। –

संबंधित मुद्दे