Linq 简单 XML 片段到非匿名类型

标签 linq c#-4.0 xml-parsing anonymous-types

我正在尝试解析这段 XML

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
 <DagUren>
   <Chauffeur>Vincent</Chauffeur>
   <AanmeldTijd>4 dec. 2012 09:05:42</AanmeldTijd>
   <Gewerkt>04:42</Gewerkt>
 </DagUren>

我创建了一个 DagUren 类,其中包含 Chauffer、AanmeldTijd、Gewerkt 等字符串。

        DagUren eenDagUren
            = (from du in doc.Element("DagUren")
               select new DagUren
               {
                   Chauffeur = du.Element("Chauffeur").Value,
                   Gewerkt = du.Element("Gewerkt").Value,
                   Pauze = du.Element("Pauze").Value,
                   AanmeldTijd = du.Element("AanmeldTijd").Value,
               }
         );

编译器响应:找不到源类型“System.Xml.Linq.XElement”的查询模式的实现。未找到“选择”。

请建议,我花了相当多的时间重写,每个指南都使用不同的方法......

最佳答案

您的问题是, Element() 不返回 XElement 的集合,它只返回单个对象。 Linq 仅查询项目集合,而不是单个对象。所以你的解决方案是:

XElement du = doc.Element("DagUren");
DagUren ennDagUren =
    new DagUren
        { 
            Chauffeur = du.Element("Chauffeur").Value,
            Gewerkt = du.Element("Gewerkt").Value,
            Pauze = du.Element("Pauze").Value,
            AanmeldTijd = du.Element("AanmeldTijd").Value
        };

关于Linq 简单 XML 片段到非匿名类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13720767/

相关文章:

WCF测试客户端未加载服务

python - 读取 XML 文件并在 Python 中获取其属性值

c# - 使用 Rx( react 性扩展)观察 ObservableCollection 中的特定项目

c# - DbExpressionBinding 需要带有集合 ResultType 的输入表达式。参数名称: input

c# DataGridView 离开事件使 Windows 窗体无响应

android - 如何解析Scorm1.2 list 文件

ruby - 如何使用 Ruby 和 Nokogiri 解析 USPTO XML 文件?

c# - 坚持 linq 查询

c# - LINQ + 加入嵌套的 foreach Razor 输出,从 groupby 写出标题行

sql - SSMS 可扩展性/插件 - 获取当前数据库和服务器