我有一个 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">
谁能帮我?谢谢
另一种选择是使用 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)