Linq读取XML

Linq读取XML

我得到了这个xml文件

<root>
    <level1 name="A">
        <level2 name="A1" />
        <level2 name="A2" />
    </level1>
    <level1 name="B">
        <level2 name="B1" />
        <level2 name="B2" />
    </level1>
    <level1 name="C" /></root>

有人能给我一个使用LINQ的C#代码吗?LINQ是最简单的打印结果的方法:
(如果是第2级节点,请注意额外的空间)

A
  A1
  A2
B
  B1
  B2
C

目前我有这个代码

XDocument xdoc = XDocument.Load("data.xml"));var lv1s = from lv1 in xdoc.Descendants("level1")
           select lv1.Attribute("name").Value;foreach (var lv1 in lv1s){
    result.AppendLine(lv1);

    var lv2s = from lv2 in xdoc...???}


芜湖不芜
浏览 620回答 3
3回答

婷婷同学_

尝尝这个。void&nbsp;Main(){ &nbsp;&nbsp;&nbsp;&nbsp;StringBuilder&nbsp;result&nbsp;=&nbsp;new&nbsp;StringBuilder(); &nbsp;&nbsp;&nbsp;&nbsp;//Load&nbsp;xml &nbsp;&nbsp;&nbsp;&nbsp;XDocument&nbsp;xdoc&nbsp;=&nbsp;XDocument.Load("data.xml"); &nbsp;&nbsp;&nbsp;&nbsp;//Run&nbsp;query &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;lv1s&nbsp;=&nbsp;from&nbsp;lv1&nbsp;in&nbsp;xdoc.Descendants("level1") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select&nbsp;new&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Header&nbsp;=&nbsp;lv1.Attribute("name").Value, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Children&nbsp;=&nbsp;lv1.Descendants("level2") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;//Loop&nbsp;through&nbsp;results &nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(var&nbsp;lv1&nbsp;in&nbsp;lv1s){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.AppendLine(lv1.Header); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(var&nbsp;lv2&nbsp;in&nbsp;lv1.Children) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.AppendLine("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;+&nbsp;lv2.Attribute("name").Value); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(result);}
打开App,查看更多内容
随时随地看视频慕课网APP