Я не знаю точно, что вы пытаетесь выполнить, но лично я бы создал класс .NET, представляющий ваш элемент класса со свойствами, идентифицирующими подэлементы, а затем использовал бы System.Xml.Serialization.XmlSerializer для записи или чтения из него.файл.
Вот пример:
using System.Xml.Serialization;
public class MyClasses : List<MyClass>{}
public class MyClass{
public String Teacher{ get; set; }
}
void main(){
MyClasses classList = new MyClasses();
MyClass c = new MyClass();
c.Teacher = "James";
classList.Add(c);
XmlSerializer serializer = new XmlSerializer(classList.GetType());
serializer.Serialize(/*Put your stream here*/);
}
И, оставив настройку потока в качестве упражнения для читателя, Blamo, вы закончили выводить представление XML вашеговозражать против какого-то потока.Поток может быть файлом, строкой, чем угодно.Извините за неприятный C # (если это неприятно), я использую VB.NET каждый день, поэтому синтаксис и ключевые слова могут быть немного не в порядке.
Обновление
Я добавил код, чтобы показать, как сериализовать коллекцию классов.Если узлы не названы правильно, есть атрибуты, которые вы можете добавить к свойствам вашего класса, просто сделайте быстрый поиск в Google.
Обновите снова
Извините, сложнообъясните, когда мы используем одно и то же слово для обозначения двух разных вещей.Допустим, вы пытаетесь представить ведро кирпичей.Вы бы написали класс C # с именем Brick
, а класс C # с именем Bucket
, унаследованный от List<Brick>
вашего Brick
, будет иметь свойство с именем Color
.Затем вы сделаете все свои кирпичи разных цветов и наполните ведро своими кирпичами.Затем вы передадите свое ведро в сериализатор, и оно даст вам что-то вроде:
<Bucket>
<Brick>
<Color>
blue
</Color>
</Brick>
</Bucket>
Сериализатор создает для вас XML из определений ваших классов, так что вам не нужно беспокоиться о деталях,Вы можете прочитать больше об этом здесь и здесь