Вывод и запись бинарного дерева в XML файл - C#
Формулировка задачи:
Имеется XML файл
и пытаюсь вывести все дерево
Выводит главный элемент (tree) и следующий (зеленое). А дальше полный ступор, как выводить все оставшиеся элементы?
программа
Ошибка в 6-ой строке
<?xml version="1.0" encoding="utf-8" ?> <tree> <node name="Зеленое?"> <true> <node name="Крокодил"> <true> null </true> <false> null </false> </node> </true> <false> <node name="Мычит?"> <true> <node name="Корова"> <true> null </true> <false> null </false> </node> </true> <false> <node name="Заяц"> <true> null </true> <false> null </false> </node> </false> </node> </false> </node> </tree>
using System; using System.Xml; class Program { static void Main(string[] args) { XmlDocument xDoc = new XmlDocument(); xDoc.Load("tree.xml"); XmlElement xRoot = xDoc.DocumentElement; Console.WriteLine(xRoot.Name); foreach (XmlNode xnode in xRoot) { XmlNode attr = xnode.Attributes.GetNamedItem("name"); Console.WriteLine("\t" + attr.Value); //зеленое } Console.Read(); } }
Нашел прекрасный XmlSerializer но и с ним ошибки
Класс дерева
[Serializable] class MyTree<T> { [Serializable] public class Node { public T Value { get; set; } public Node True { get; set; } public Node False { get; set; } public Node(T _value) { Value = _value; True = null; False = null; } } public MyTree<T>.Node Root; public MyTree() { } public MyTree(T _value) { Root = new MyTree<T>.Node(_value); } public void Add(MyTree<T>.Node _currentNode, T _valueTrue, T _valueFalse) { _currentNode.True = new MyTree<T>.Node(_valueTrue); _currentNode.False = new MyTree<T>.Node(_valueFalse); } }
MyTree<string> Tree = new MyTree<string>("Зеленое"); //корень MyTree<string>.Node curr = Tree.Root; //текущая вершина Tree.Add(curr, "Крокодил", "Корова"); XmlSerializer formatter = new XmlSerializer(Tree.GetType()); using (FileStream fs = new FileStream("people.xml", FileMode.OpenOrCreate)) { formatter.Serialize(fs, Tree); }
1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] недоступен в силу его уровня защиты. Возможна обработка только общих типов.
Решение задачи: «Вывод и запись бинарного дерева в XML файл»
textual
Листинг программы
public Node True { get; set; } public Node False { get; set; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д