gpt4 book ai didi

c# - LINQ 到 XML : Ignoring of the case of attributes

转载 作者:数据小太阳 更新时间:2023-10-29 01:51:05 26 4
gpt4 key购买 nike

我使用 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.

“URL”不等于“Url” - 找不到此类属性。

我能否通过 LINQ to XML(或其他)解决这个问题,还是不能?

最佳答案

虽然 myXelement.Attribute("URL") 需要正确的大小写是正确的,但没有什么能阻止您这样做

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

将其包装在合适的扩展或静态辅助方法中,您的消费代码应该不会太糟糕。

关于c# - LINQ 到 XML : Ignoring of the case of attributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13525459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com