如何在 C#.net 中解析 xml

use*_*158 -4 c# xml

我有一个 xml 文件,例如:

<?xml version="1.0" encoding="UTF-8"?>

    <Request>
        <Authenticate>
            <Username>Username</Username>
            <Token>Token</Token>
        </Authenticate>
        <Fields>
            <Group name="test">
                <Field>
                    <Name>Field 1</Name>
                    <Type>string</Type>
                </Field>
                <Field>
                    <Name>Field 2</Name>
                    <Type>string</Type>
                </Field>
            </Group>
            <Group name="Group 2">
                <Field>
                    <Name>Field 3</Name>
                    <Type>string</Type>
                </Field>
                <Field>
                    <Name>Field 4</Name>
                    <Type>string</Type>
                </Field>
            </Group>
        </Fields>
    </Request>
Run Code Online (Sandbox Code Playgroud)

我想在 C#.Net 中解析它,我想我可以这样做:

XmlReader reader = XmlReader.Create(FilePath);
while(reader.Read()) {}
Run Code Online (Sandbox Code Playgroud)

但是我如何访问节点呢?还有团体的名字?<Group name="Group 2"> 谁能帮我?谢谢

L.B*_*L.B 5

另一种选择是使用 xml 序列化

XmlSerializer ser = new XmlSerializer(typeof(SO.Request));
using(var f = File.Open(filename,FileMode.Open))
{
    var requests = (SO.Request)ser.Deserialize(f);
}
Run Code Online (Sandbox Code Playgroud)
public class SO
{
    public class Request
    {
        public Authenticate Authenticate { get; set; }
        public List<Group> Fields { get; set; }
    }

    public class Authenticate
    {
        public string Username { get; set; }
        public string Token { get; set; }
    }

    public class Group
    {
        [XmlAttribute("name")]
        public string Name { get; set; }
        [XmlElement("Field")]
        public List<Field> Fields { get; set; }
    }

    public class Field
    {
        public string Name { get; set; }
        public string Type { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)