2012-11-23 177 views
6

我使用LINQ to XML處理由Autodesk公司創建的PackageContents.xml文件。公司已定義此XML文件here的結構,但沒有XSD架構。LINQ to XML:忽略屬性的情況

我有一個問題:這家公司打破了他的規則......通常情況下的元素和屬性是無效的。例如,可以定義「Url」屬性而不是「URL」屬性(不同的大小寫)。

case is important for XML(或in English):

像元素名,屬性名是區分大小寫的,並且必須以字母開頭 或下劃線。

「URL」不等於「Url」 - 找不到此屬性。

我可以通過LINQ to XML(或其他)解決這個問題,或者我不能?

回答

6

雖然這是正確的,myXelement.Attribute("URL")需要正確的情況下,沒有什麼能阻止你做

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

總結這件事在適當延長或靜態輔助方法和你消耗的代碼應該不會太糟糕。

+0

謝謝!你是對的。 –