使用c#动态生成xml
本文关键字:xml 动态 使用 | 更新日期: 2023-09-27 18:08:48
我有3个实体作为目标。任务和提醒。对于每个实体,我都有单独的数据表。现在我想生成如下所示的xml
<PDPData>
<Goal>
<TypeId>300</TypeId>
<NAME>Smart Goal #</NAME>
<Task>
<TypeId>11</TypeId>
<NAME>Task1</NAME>
</Task>
<Task>
<TypeId>12</TypeId>
<NAME>Task2</NAME>
</Task>
<Reminder>
<TypeId>11</TypeId>
<NAME>Reminder1</NAME>
</Reminder>
<Reminder>
<TypeId>12</TypeId>
<NAME>Reminder2</NAME>
</Reminder>
</Goal>
</PDPData>
我怎样才能做到这一点。我尝试了下面的代码,但它只附加了一个子代码,但我想附加并在目标内
XmlElement hedder = docConfig.CreateElement("Goal");
docConfig.DocumentElement.PrependChild(hedder);
docConfig.ChildNodes.Item(0).AppendChild(hedder);
// Create <installationid> Node
XmlElement installationElement = docConfig.CreateElement("TypeId");
XmlText installationIdText = docConfig.CreateTextNode(dtGoals.Rows[goalCount]["TypeId"].ToString());
installationElement.AppendChild(installationIdText);
hedder.AppendChild(installationElement);
// Create <environment> Node
XmlElement environmentElement = docConfig.CreateElement("NAME");
XmlText environText = docConfig.CreateTextNode(dtGoals.Rows[goalCount]["Name"].ToString());
environmentElement.AppendChild(environText);
hedder.AppendChild(environmentElement);
[Serializable()] //Set this attribute to all the classes that want to serialize
public class Employee : ISerializable
{
public int EmpId;
public string EmpName;
//Default constructor
public Employee()
{
EmpId = 0;
EmpName = null;
}
}
XmlSerializer serializer = new XmlSerializer(typeof(Employee));
TextWriter writer = new StreamWriter(filename);
Employee objEmp = new Employee();
serializer.Serialize(writer, objEmp);
writer.Close();
using System;
public class clsPerson {
public string FirstName;
public string MI;
public string LastName;
}
class class1 {
static void Main(string[] args)
{ clsPerson p=new clsPerson(); p.FirstName = "Jeff"; p.MI = "A"; p.LastName = "Price"; System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType()); x.Serialize(Console.Out, p); Console.WriteLine();
Console.ReadLine(); } }
抱歉格式化,从手机发布。