Я пытаюсь сериализации следующей структуры XML с помощью XmlWriter в C#:C# сериализации в XML с помощью XmlWriter
<userProfiles>
<groupId>12345</groupId>
<profile>
<name>test 1</name>
<id>10000</id>
<ns:userPerformance>
<ns:type>yearly</ns:type>
<ns:values>
<ns:value>
<ns:start>start time</ns:start>
<ns:end>end time</ns:end>
<ns:value>6712736</ns:value>
</ns:value>
</ns:values>
</ns:userPerformance>
</profile>
<profile>
<name>test 2</name>
<id>20000</id>
<ns:userPerformance>
<ns:type>yearly</ns:type>
<ns:values>
<ns:value>
<ns:start>start time</ns:start>
<ns:end>end time</ns:end>
<ns:value>712367</ns:value>
</ns:value>
<ns:value>
<ns:start>start time</ns:start>
<ns:end>end time</ns:end>
<ns:value>54656</ns:value>
</ns:value>
</ns:values>
</ns:userPerformance>
</profile>
</userProfiles>
Я пытаюсь заполнить элементы userPerformance. Я знаю, что мне нужно итерации между двумя датами для создания значений ns :, но как я могу установить, какой элемент будет начальным элементом, чтобы заполнить значения ns: values? Вот что я до сих пор!
var xml = new XmlTextWriter(new StringWriter());
xml.WriteStartDocument();
xml.WriteStartElement("userProfiles");
xml.WriteElementString("groupId", "1");
foreach (var profile in profiles)
{
xml.WriteStartElement("profile");
{
xml.WriteElementString("name", "test 1");
xml.WriteElementString("id", "10000");
// assume that I have the proper allDays as a List of DateTime
foreach(var days in allDays)
{
// What will be my StartElement?
xml.WriteStartElement("userPerformance");
}
}
}
Если у меня есть userPerformance как StartElement внутри внутреннего цикла, где я итерацию через дни, я мог бы в конечном итоге, его несколько раз в течение каждого дня. Как я могу избежать этого?
Я рекомендовал бы идти вниз по другому пути: сгенерируйте классы C# из вашего XML (используя xsd.exe), затем создайте свою модель в коде и XML-сериализуйте ее с помощью однострочного интерфейса. См. Http://stackoverflow.com/questions/4203540/generate-c-sharp-class-from-xml –
Нет. Я бы воздержался от использования сгенерированных классов. – sparkr
Какова ваша мотивация? –