C# 如何在不序列化的情况下解析Xml并存储每个节点Xpath

C# 如何在不序列化的情况下解析Xml并存储每个节点Xpath,c#,xml,parsing,C#,Xml,Parsing,我有以下xml文件。我想在C#中不序列化地解析它 请帮帮我 如何实现这一点?尝试使用LINQ解析.xml(查看如何实现这一点的示例)。您应该能够从那里实现您的其他需求-如果您在编码时遇到困难,请自己尝试并寻求帮助:)快速解决方案让您开始: 创建一个XElement: XElement studentXml = XElement.Parse ( @"<StudentList> <StudentCount>5</StudentCount>

我有以下xml文件。我想在C#中不序列化地解析它

请帮帮我
如何实现这一点?

尝试使用LINQ解析.xml(查看如何实现这一点的示例)。您应该能够从那里实现您的其他需求-如果您在编码时遇到困难,请自己尝试并寻求帮助:)

快速解决方案让您开始:

创建一个XElement:

    XElement studentXml = XElement.Parse (
    @"<StudentList>
    <StudentCount>5</StudentCount>
    <Student>
        <Id>1</Id>
    <Name>Abc</Name>
    </Student>
    <Student>
        <Id>2</Id>
        <Name>Efg</Name>
    </Student>
    <Student>
        <Id>3</Id>
        <Name>Ghi</Name>
    </Student>
    <Student>
        <Id>4</Id>
    <Name>Jkl</Name>
    </Student>
    <Student>
        <Id>5</Id>
    <Name>Mno</Name>
    </Student>
    </StudentList>");
List<Student>

Class Student
{
    public int Id = 0;
    public string Name = "";
}
StudentList\StudentCount
StudentList\Student\Id
StudentList\Student\Name
    XElement studentXml = XElement.Parse (
    @"<StudentList>
    <StudentCount>5</StudentCount>
    <Student>
        <Id>1</Id>
    <Name>Abc</Name>
    </Student>
    <Student>
        <Id>2</Id>
        <Name>Efg</Name>
    </Student>
    <Student>
        <Id>3</Id>
        <Name>Ghi</Name>
    </Student>
    <Student>
        <Id>4</Id>
    <Name>Jkl</Name>
    </Student>
    <Student>
        <Id>5</Id>
    <Name>Mno</Name>
    </Student>
    </StudentList>");
var students = 
    studentXml
        .Descendants()
        .Where(node => node.Name == "Student")
        .Select(node => 
                 new Student {
                   Id = int.Parse(node.Descendants()
                                      .First(item => item.Name == "Id")
                                      .Value), 
                   Name = node.Descendants()
                                      .First(item => item.Name == "Name")
                                      .Value
                 });