C# 用C反序列化XML#

C# 用C反序列化XML#,c#,.net,xml,C#,.net,Xml,如何将lib的id属性放入带有C#的foreach中?我需要对每个字符串做些什么,我需要它以某种方式?有人能帮忙吗 <map> <lib id="blue" revision="58399"> <part id="2732" type="ch"/> <part id="2732" type="ls"/> <part id="2732" type="rs"/> <part id="2733" ty

如何将lib的
id
属性放入带有C#的foreach中?我需要对每个字符串做些什么,我需要它以某种方式?有人能帮忙吗

<map>
  <lib id="blue" revision="58399">
    <part id="2732" type="ch"/>
    <part id="2732" type="ls"/>
    <part id="2732" type="rs"/>
    <part id="2733" type="ch"/>
  </lib>
  <lib id="black" revision="26609">
    <part id="2109" type="cc"/>
    <part id="2109" type="lc"/>
    <part id="2109" type="rc"/>
  </lib>
</map>

有多种方法可以获取
lib
元素的
id
属性

以下是常见代码(xml变量):

二:

三(使用XPath):


到目前为止,你是如何解决这个问题的?你在这方面面临什么问题?我没有尝试过任何东西,因为我是C#新手,不知道如何做,我问我从哪里开始?你从上C#课程开始,拿起一本书,探索名称空间,阅读MSDN。。。你不是这么开始的,你让我听起来好像我是认真的,我是14岁的该死的人,我只是在为我的朋友做一个应用程序,我不想花几个小时学习XML。
var document = XDocument.Load(_storagePath + "/file.xml");

foreach (var child in document.Elements())
{
    foreach (var childOfChild in child.Elements())
    {
        Console.WriteLine(childOfChild.Element("id").Value);
    }
}
var xml = @"<map>
             <lib id=""blue"" revision=""58399"">
                 <part id=""2732"" type=""ch""/>
                 <part id=""2732"" type=""ls""/>
                 <part id=""2732"" type=""rs""/>
                 <part id=""2733"" type=""ch""/>
             </lib>
                 <lib id=""black"" revision=""26609"">
                 <part id=""2109"" type=""cc""/>
                 <part id=""2109"" type=""lc""/>
                 <part id=""2109"" type=""rc""/>
             </lib>
           </map>";
var xdoc = XDocument.Parse(xml);
foreach (var lib in xdoc.Descendants("lib"))
    Console.WriteLine(lib.Attribute("id").Value);
var xdoc = XDocument.Parse(xml);
foreach (var item in xdoc.Root.Elements("lib"))
    Console.WriteLine(item.Attribute("id").Value);
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
foreach (XmlAttribute attr in xmlDoc.SelectNodes("/map/lib/@id"))
    Console.WriteLine(attr.Value);