【问题标题】:Retrieve data with images from list从列表中检索带有图像的数据
【发布时间】:2013-02-14 04:40:36
【问题描述】:

我正在使用 linq 代码解析 XML 文件。这是我的代码。我想要绑定详细信息和图像是列表。

 var query = from l in xmlDoc.Descendants("Person")
             from detail in l.Descendants("Details")
             select new Notch
             {
                 name = (string)l.Attribute("name").Value,
                 detail= l.Element("detail").Select(a => (string)a.Attribute("detailName")).ToList(),
                 Image = l.Element("detail").Elements("event_image").Select(x => (string)x.Attribute("url")).ToString()
             };

 foreach (var result in query)
 {
     foreach (var detail in result.detail)
     {
          Console.WriteLine(detail);
     }  
 }

我尝试了这段代码,但我得到了如下所示的输出..但我想要详细信息和图像是列表。

  Raja

  System.Collection.Generic.List'1[string.system]

  Rama

  System.Collection.Generic.List'1[string.system]

【问题讨论】:

    标签: linq c#-4.0 xml-parsing linq-to-xml


    【解决方案1】:

    问题是你得到的是一个字符串列表,而不是一个唯一的。 试试这个代码,以便将每个字符串加入一个新行并能够正确打印它:

    detail = string.Join(System.Environment.NewLine, l.Element("detail").Select(a => (string)a.Attribute("detailName")))
    

    完整代码:

    var query = from l in xmlDoc.Descendants("Person")
                 from detail in l.Descendants("Details")
                 select new Notch
                 {
                     name = (string)l.Attribute("name").Value,
                     detail= string.Join(System.Environment.NewLine, l.Element("detail").Select(a => (string)a.Attribute("detailName"))),
                     Image = l.Element("detail").Elements("event_image").Select(x => (string)x.Attribute("url")).ToString()
                 };
    
     foreach (var result in query)
     {
         foreach (var detail in result.detail)
         {
              Console.WriteLine(detail);
         }  
     }
    

    【讨论】:

    • 您好,感谢重播,希望您能回答,但我会遇到一些错误
    • 您好,我遇到了错误,例如'string.Join(string, string[])' 的最佳重载方法匹配有一些无效参数
    • 尝试将内部选择转换为数组:detail= string.Join(System.Environment.NewLine, l.Element("detail").Select(a => (string)a.Attribute( "detailName").ToArray()))
    • 嗨,请告诉我为什么这个问题会这样给我正确的解决方案
    猜你喜欢
    • 2015-10-01
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多