c# – LINQ to XML:忽略属性的情况

前端之家收集整理的这篇文章主要介绍了c# – LINQ to XML:忽略属性的情况前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用LINQ to XML来处理由Autodesk公司创建的PackageContents.xml文件.公司已定义此XML文件 here的结构,但没有XSD架构.

我有一个问题:这家公司违反了规则……通常情况下,元素和属性都是无效的.例如,可以定义“Url”属性而不是“URL”属性(不同的大小写).

但是case is important for XML(或,in English):

Like element names,attribute names are case-sensitive and must start
with a letter or underscore.

“网址”不等于“网址” – 找不到此类属性.

我可以通过LINQ to XML(或其他)解决这个问题,或者我不能解决

解决方法

虽然myXelement.Attribute(“URL”)需要正确的案例是正确的,但没有什么能阻止你做
var attribute = x.Attributes()
                 .SingleOrDefault(xa => 
                     string.Equals(xa.Name.LocalName,"Url",StringComparison.InvariantCultureIgnoreCase));

用合适的扩展或静态帮助方法包装它,你的消费代码不应该太糟糕.

猜你在找的C#相关文章