C#解析XML文件

C#解析XML文件,c#,xml,linq,C#,Xml,Linq,我在这里查看了一些有关堆栈溢出的线程,但找不到答案。我有一个xml文件设置,如下所示: <entry id="1" type="a"> <name>string 1</name> <description>any description</description> </entry> <entry id="2" type="b"> <name>string 2</name&

我在这里查看了一些有关堆栈溢出的线程,但找不到答案。我有一个xml文件设置,如下所示:

<entry id="1" type="a">
    <name>string 1</name>
    <description>any description</description>
</entry>
<entry id="2" type="b">
    <name>string 2</name>
    <description>any description #2</description>
</entry>

字符串1
任何描述
字符串2
任何描述#2
我需要选择所有“条目”标签,并返回条目的ID、类型、内部名称和描述标签。我怎样才能用C#做到这一点


谢谢,看看图书馆。使用它,您可以使用LINQ或XPath解析HTML。

请记住,您的xml文件应该有一个根节点。下面是使用Linq到Xml的解析:

var xdoc = XDocument.Load(path_to_xml);
var entries = from e in xdoc.Descendants("entry")
              select new {
                 Id = (int)e.Attribute("id"),
                 Type = (string)e.Attribute("type"),
                 Name = (string)e.Element("name"),
                 Description = (string)e.Element("description")
              };

查询将返回对应于每个条目元素的匿名对象序列(具有属性Id、类型、名称和描述)。

这看起来确实像XML…因此,我将使用XDocument和LINQ扩展来表示XML。如果需要额外的功能,也可以使用XPath(在某些情况下,会牺牲复杂性)。请参阅(带子体的Linq到XMl是一个很好的起点)。@user1425433在您的问题中,根级别有两个入口元素