2012-11-23 38 views
6

Autodesk社が作成したPackageContents.xmlファイルの操作にLINQ to 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

ありがとうございました!あなたが正しいです。 –

関連する問題