C# XML解析到列表
和简单方法,返回列表:C# XML解析到列表,c#,xml,parsing,C#,Xml,Parsing,和简单方法,返回列表: [XmlRoot("Employees")] public class Employee { [XmlElement("EmpId")] public int Id { get; set; } [XmlElement("Name")] public string Name { get; set; } } 公共静态列表SampleData() { 返回新列表() { 新雇员(){ Id=1, Name=“pierwszy” }, 新雇员(
[XmlRoot("Employees")]
public class Employee
{
[XmlElement("EmpId")]
public int Id { get; set; }
[XmlElement("Name")]
public string Name { get; set; }
}
公共静态列表SampleData()
{
返回新列表()
{
新雇员(){
Id=1,
Name=“pierwszy”
},
新雇员(){
Id=2,
Name=“drugi”
},
新雇员(){
Id=3,
Name=“trzeci”
}
};
}
Program.cs:
public static List<Employee> SampleData()
{
return new List<Employee>()
{
new Employee(){
Id = 1,
Name = "pierwszy"
},
new Employee(){
Id = 2,
Name = "drugi"
},
new Employee(){
Id = 3,
Name = "trzeci"
}
};
}
var list=Employee.SampleData();
XmlSerializer ser=新的XmlSerializer(typeof(List));
TextWriter=newstreamwriter(“nowi.xml”);
序列序列化(编写器、列表);
我有一个文件结果:
var list = Employee.SampleData();
XmlSerializer ser = new XmlSerializer(typeof(List<Employee>));
TextWriter writer = new StreamWriter("nowi.xml");
ser.Serialize(writer, list);
1.
皮耶尔西
2.
德鲁吉
3.
特泽西
但我希望根元素的名称为:“Employees”,而不是“ArrayOfEmployee”
我怎样才能做到
我想这样做,因为我有一个文件,其中的结构如下所示:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfEmployee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Employee>
<EmpId>1</EmpId>
<Name>pierwszy</Name>
</Employee>
<Employee>
<EmpId>2</EmpId>
<Name>drugi</Name>
</Employee>
<Employee>
<EmpId>3</EmpId>
<Name>trzeci</Name>
</Employee>
</ArrayOfEmployee>
...
...
您可以传递XmlRootAttribute
来设置元素名称:
<Employees>
<Employee>
...
</Employee>
<Employee>
...
</Employee>
</Employees>
var root=新的XmlRootAttribute(“员工”);
XmlSerializer ser=新的XmlSerializer(typeof(List),root);
TextWriter=newstreamwriter(“nowi.xml”);
序列序列化(编写器、列表);
发件人:
。。。根参数允许您替换默认对象的
通过指定XmlRootAttribute获取信息;对象允许您
要设置不同的名称空间,元素名,依此类推
您可以传递
XmlRootAttribute
来设置元素名称:
<Employees>
<Employee>
...
</Employee>
<Employee>
...
</Employee>
</Employees>
var root=新的XmlRootAttribute(“员工”);
XmlSerializer ser=新的XmlSerializer(typeof(List),root);
TextWriter=newstreamwriter(“nowi.xml”);
序列序列化(编写器、列表);
发件人:
。。。根参数允许您替换默认对象的
通过指定XmlRootAttribute获取信息;对象允许您
要设置不同的名称空间,元素名,依此类推
您可以传递
XmlRootAttribute
来设置元素名称:
<Employees>
<Employee>
...
</Employee>
<Employee>
...
</Employee>
</Employees>
var root=新的XmlRootAttribute(“员工”);
XmlSerializer ser=新的XmlSerializer(typeof(List),root);
TextWriter=newstreamwriter(“nowi.xml”);
序列序列化(编写器、列表);
发件人:
。。。根参数允许您替换默认对象的
通过指定XmlRootAttribute获取信息;对象允许您
要设置不同的名称空间,元素名,依此类推
您可以传递
XmlRootAttribute
来设置元素名称:
<Employees>
<Employee>
...
</Employee>
<Employee>
...
</Employee>
</Employees>
var root=新的XmlRootAttribute(“员工”);
XmlSerializer ser=新的XmlSerializer(typeof(List),root);
TextWriter=newstreamwriter(“nowi.xml”);
序列序列化(编写器、列表);
发件人:
。。。根参数允许您替换默认对象的
通过指定XmlRootAttribute获取信息;对象允许您
要设置不同的名称空间,元素名,依此类推
只需更改如下
var root = new XmlRootAttribute("Employees");
XmlSerializer ser = new XmlSerializer(typeof(List<Employee>), root);
TextWriter writer = new StreamWriter("nowi.xml");
ser.Serialize(writer, list);
XmlSerializer ser=新的XmlSerializer(typeof(List),
新的XmlRootAttribute(“员工”);
就这些。但是,要获得一个干净的xml(没有xml声明,没有xsi或xsd名称空间等),您应该使用一些技巧
XmlSerializer ser = new XmlSerializer(typeof(List<Employee>),
new XmlRootAttribute("Employees"));
XmlSerializer ser=新的XmlSerializer(typeof(List),
新的XmlRootAttribute(“员工”);
TextWriter writer=新的StreamWriter(文件名);
var xmlWriter=xmlWriter.Create(writer,新的XmlWriterSettings(){omitxmldesclaration=true,Indent=true});
XmlSerializerNamespaces ns=新的XmlSerializerNamespaces();
加上(“,”);
序列化(xmlWriter,list,ns);
只需更改如下
var root = new XmlRootAttribute("Employees");
XmlSerializer ser = new XmlSerializer(typeof(List<Employee>), root);
TextWriter writer = new StreamWriter("nowi.xml");
ser.Serialize(writer, list);
XmlSerializer ser=新的XmlSerializer(typeof(List),
新的XmlRootAttribute(“员工”);
就这些。但是,要获得一个干净的xml(没有xml声明,没有xsi或xsd名称空间等),您应该使用一些技巧
XmlSerializer ser = new XmlSerializer(typeof(List<Employee>),
new XmlRootAttribute("Employees"));
XmlSerializer ser=新的XmlSerializer(typeof(List),
新的XmlRootAttribute(“员工”);
TextWriter writer=新的StreamWriter(文件名);
var xmlWriter=xmlWriter.Create(writer,新的XmlWriterSettings(){omitxmldesclaration=true,Indent=true});
XmlSerializerNamespaces ns=新的XmlSerializerNamespaces();
加上(“,”);
序列化(xmlWriter,list,ns);
只需更改如下
var root = new XmlRootAttribute("Employees");
XmlSerializer ser = new XmlSerializer(typeof(List<Employee>), root);
TextWriter writer = new StreamWriter("nowi.xml");
ser.Serialize(writer, list);
XmlSerializer ser=新的XmlSerializer(typeof(List),
新的XmlRootAttribute(“员工”);
就这些。但是,要获得一个干净的xml(没有xml声明,没有xsi或xsd名称空间等),您应该使用一些技巧
XmlSerializer ser = new XmlSerializer(typeof(List<Employee>),
new XmlRootAttribute("Employees"));
XmlSerializer ser=新的XmlSerializer(typeof(List),
新的XmlRootAttribute(“员工”);
TextWriter writer=新的StreamWriter(文件名);
var xmlWriter=xmlWriter.Create(writer,新的XmlWriterSettings(){omitxmldesclaration=true,Indent=true});
XmlSerializerNamespaces ns=新的XmlSerializerNamespaces();
加上(“,”);
序列化(xmlWriter,list,ns);
只需更改如下
var root = new XmlRootAttribute("Employees");
XmlSerializer ser = new XmlSerializer(typeof(List<Employee>), root);
TextWriter writer = new StreamWriter("nowi.xml");
ser.Serialize(writer, list);
XmlSerializer ser=新的XmlSerializer(typeof(List),
新的XmlRootAttribute(“员工”);
就这些。但是,要获得一个干净的xml(没有xml声明,没有xsi或xsd名称空间等),您应该使用一些技巧
XmlSerializer ser = new XmlSerializer(typeof(List<Employee>),
new XmlRootAttribute("Employees"));
XmlSerializer ser=新的XmlSerializer(typeof(List),
新的XmlRootAttribute(“员工”);
TextWriter writer=新的StreamWriter(文件名);
var xmlWriter=xmlWriter.Create(writer,新的XmlWriterSettings(){omitxmldesclaration=true,Indent=true});
XmlSerializerNamespaces ns=新的XmlSerializerNamespaces();
加上(“,”);
serial.Serialize(xmlwrite