0

XMLファイルを解析するlinqコードを使用しています。これは私のコードです。バインドの詳細と画像がリストです。

 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]
4

1 に答える 1

0

問題は、一意のリストではなく、文字列のリストを取得していることです。すべての文字列を改行で結合し、正しく出力できるようにするには、次のコードを試してください。

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);
     }  
 }
于 2013-02-28T10:28:46.390 に答える