Цифры нельзя повторять. То, что вы, вероятно, ищете, - это функция range
, которая создаст последовательность чисел до нужного числа:
for number in range(1, students + 1):
Причина, по которой я добавил + 1 есть потому, что второй аргумент диапазона является исключительным.
Вы хотите превратить произвольный объект .NET в сериализованную XML-строку? Нет ничего проще!! :-)
public string SerializeToXml(object input)
{
XmlSerializer ser = new XmlSerializer(input.GetType(), "http://schemas.yournamespace.com");
string result = string.Empty;
using(MemoryStream memStm = new MemoryStream())
{
ser.Serialize(memStm, input);
memStm.Position = 0;
result = new StreamReader(memStm).ReadToEnd();
}
return result;
}
Что и должно быть к нему :-) Конечно, вы также можете сделать пространство имен XML по умолчанию настраиваемым в качестве параметра.
Или вы хотите иметь возможность создавать XmlDocument поверх существующего объекта?
public XmlDocument SerializeToXmlDocument(object input)
{
XmlSerializer ser = new XmlSerializer(input.GetType(), "http://schemas.yournamespace.com");
XmlDocument xd = null;
using(MemoryStream memStm = new MemoryStream())
{
ser.Serialize(memStm, input);
memStm.Position = 0;
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
using(var xtr = XmlReader.Create(memStm, settings))
{
xd = new XmlDocument();
xd.Load(xtr);
}
}
return xd;
}
Вы можете сериализовать непосредственно в XmlDocument
:
XmlDocument doc = new XmlDocument();
XPathNavigator nav = doc.CreateNavigator();
using (XmlWriter w = nav.AppendChild())
{
XmlSerializer ser = new XmlSerializer(typeof(MyType));
ser.Serialize(w, myObject);
}