2016-06-17 22 views
-1

を読むには:LINQは、私は、このファイルのXML持つファイルのXML

this is my XML file

私はLINQを使用してC#コードを電子取得することができますどのように?

XDocument doc = XDocument.Load(@"C:\temp\image.xml"); 

     var lv1s = from lv1 in doc.Descendants("field") 
        select new 
        { 
         Header = lv1.Attribute("type").Value, 
         Children = lv1.Descendants("value") 
        }; 

     StringBuilder result = new StringBuilder(); 
     foreach (var lv1 in lv1s) 
     { 
      result.AppendLine(lv1.Header); 
      foreach (var lv2 in lv1.Children) 
       result.AppendLine("  " + lv2.Attribute("type").Value); 
     } 
     Console.WriteLine(result.ToString()); 
     Console.ReadLine(); 

をしかし、私は何の結果を持っていない: 私はこのコードを試してみてください!

+0

[this](http://www.c-sharpcorner.com/UploadFile/dhananjaycoder/reading-xml -fileスルーLINQ-少数のヒントは、/) –

答えて

0

問題は、あなたの子供は全く属性を持っていません、ただ価値ですか、それらはありませんか?

このようにサイクルを変更するとどうなりますか?

foreach (var lv1 in lv1s) 
{ 
    result.AppendLine(lv1.Header); 
    foreach (var lv2 in lv1.Children) 
    { 
     //result.AppendLine("  " + lv2.Attribute("type").Value); // THERE ARE NO ATTRIBUTES 
     result.AppendLine("  " + lv2.Value); 
    } 
} 
+0

私は持っている: 'タイプ= "AAA"> XXX ' だから、私は、任意の結果を持っていません! – devtunis

+0

私はあなたのファイルを試しましたか?それが動作する単純なファイルの場合:_ <フィールドタイプ=「AAA」> XXX _ –

+0

はい、私はあなたの新しいコードを試してみましたが、私はまだ私が何をすべきか分からない何の結果 を持っていませんか? – devtunis

0

非常に感謝し、あなたが私を与えるコードで、私はまだ問題を抱えている。..

しかし、私は他の方法での解決策が見つかりました:

 XmlDocument doc = new XmlDocument(); 
     doc.Load(@"C:\temp\image.xml"); 


     XmlNodeList elemList = doc.GetElementsByTagName("value"); 
     for (int i = 0; i < elemList.Count; i++) 
     { 
      Console.WriteLine(elemList[i].InnerXml); 
     } 

とを私は値をしたい場合例:exemple type = "line1"の場合:

string aa = elemList[1].InnerXml; 
関連する問題