加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 08:40:49 所属栏目:百科 来源:网络整理
导读:我使用LINQ to XML来处理由Autodesk公司创建的PackageContents.xml文件.公司已定义此XML文件 here的结构,但没有XSD架构. 我有一个问题:这家公司违反了规则……通常情况下,元素和属性都是无效的.例如,可以定义“Url”属性而不是“URL”属性(不同的大小写).
我使用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));

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读