2012-11-23 17 views
6

Autodesk şirketi tarafından oluşturulan PackageContents.xml dosyasıyla çalışmak için LINQ to XML'i kullanıyorum. Şirket bu XML dosyasının yapısını here, ancak XSD şeması olmadan tanımlamıştır.XML için LINQ: Özniteliklerin görmezden gelmesi

Sorunum var: Bu şirket kurallarını çiğniyor ... Çoğu zaman öğe ve öznitelikler geçersiz. Örneğin, "URL" özelliği yerine "Url" özelliği tanımlanabilir (farklı kasa).

Ama case is important for XML (veya, in English):

eleman isimleri gibi isimler harf duyarlıdır ve bir harfle başlatmak veya altını gerekir bağlıyor.

"URL" eşit değil "Url" - böyle bir özellik bulunamadı.

Bu sorunu LINQ aracılığıyla XML'e (veya başkalarına) çözebilir miyim, yoksa yapamıyorum?

cevap

6

o myXelement.Attribute("URL") harfe gerektirecektir bu doğru olsa da, orada

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

Wrap bu kadar uygun bir uzatma veya statik yardımcı yöntem yapıyor durdurma şey var ve tüketen kod çok kötü olmamalıdır.

+0

Teşekkür ederiz! Haklısın. –

İlgili konular