使用C#对象创建XML

时间:2018-09-19 17:11:07

标签: c# xml linq-to-xml xml-serialization xml-deserialization

我有一个C#对象,需要将其更改为XML。

我的C#对象看起来像这样。

public class XmlModel
{      
    public string NodeName { get; set; }
    public int NodeId { get; set; }
    public int ParentId { get; set; }

    public string NodeValue { get; set; }
}

我有一个这样的对象列表。

NodeName : "Parent" , NodeId : "1" , ParentId:"0" NodeValue=""
NodeName : "Child" , NodeId : "2" , ParentId:"1" NodeValue=""
NodeName : "Name" , NodeId : "4" , ParentId:"3" NodeValue="Person Name"
NodeName : "LastName" , NodeId : "5" , ParentId:"3" NodeValue="Last Name"
NodeName : "Contact" , NodeId : "3" , ParentId:"2" NodeValue="54565465"

NodeName : "Child" , NodeId : "6" , ParentId:"1" NodeValue=""
NodeName : "Address" , NodeId : "7" , ParentId:"6" NodeValue=""
NodeName : "Home" , NodeId : "8" , ParentId:"7" NodeValue="Home Address"
NodeName : "Office" , NodeId : "9" , ParentId:"7" NodeValue="Address"

现在,我需要使用XDocumentXElement创建一个XML文件。

1 个答案:

答案 0 :(得分:0)

您必须使用XmlSerializer进行XML序列化。下面是一个示例片段。

 XmlSerializer xsSubmit = new XmlSerializer(typeof(MyObject));
 var subReq = new MyObject();
 var xml = "";

 using(var sww = new StringWriter())
 {
     using(XmlWriter writer = XmlWriter.Create(sww))
     {
         xsSubmit.Serialize(writer, subReq);
         xml = sww.ToString(); // Your XML
     }
 }