asp.net - 如何检查 XML 文件中属性的唯一性

标签 asp.net xml linq unique xmlreader

如果我有一个 XML 文件,并且我想检查每个元素的属性 id唯一性,如下面的文档:

<classes columns="id,name,short,classroomids,teacherid,grade,customfield1">
  <class id="0ini" name="Initial Class" short="Init" teacherid="" classroomids="" grade="" customfield1="0"/>
  <class id="*2" name="A1" short="A1" teacherid="" classroomids="" grade="" customfield1="30"/>
  <class id="*3" name="A2" short="A2" teacherid="" classroomids="" grade="" customfield1=""/>
</classes>

我想检查 id 属性是否唯一

最佳答案

假设您不能将它添加到架构中,您可以为此使用 LINQ to XML:

var allIds = doc.Descendants()
                .Select(x => x.Attribute("id"))
                .Where(x => x != null)
                .Select(x => x.Value)
                .ToList();
var allDistinct = allIds.Count == allIds.Distinct().Count();

关于asp.net - 如何检查 XML 文件中属性的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8777338/

相关文章:

c# - AntiForgeryToken 在幕后是如何工作的?

java - 没有命名空间的 XML。针对多个 XSD 之一进行验证

c# - 无法将 linq 结果隐式转换为 View 模型列表

c# - 如何从 IGrouping 中获取值?

c# - 按钮变灰,直到所有文本框都包含 ASP 中的文本

ASP.NET 客户端时间

css - 如何更改 asp.update 面板中内容的字体大小

asp.net - 从 VB.NET 中的 LINQ 查询返回匿名类型

java - 在 java 中,如何在第 3 方工具返回的 DOM 中创建自己的 xml 子类元素

c# - LINQ 执行查询