fork(4) download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Xml;
  4. using System.Xml.Serialization;
  5. using System.IO;
  6. using System.Linq;
  7.  
  8. public class node
  9. {
  10. public string name;
  11. public string age;
  12.  
  13. public override string ToString()
  14. {
  15. return string.Format("(node) name: {0}, age: {1}\n", name, age);
  16. }
  17. }
  18.  
  19. public class tree
  20. {
  21. public string name;
  22. public int age;
  23. [XmlElement("node")]
  24. public List<node> nodes;
  25. [XmlElement("tree")]
  26. public List<tree> trees;
  27.  
  28. public override string ToString()
  29. {
  30. return string.Format("(tree) name: {0}, age: {1}\n", name, age) +
  31. string.Join("", nodes.Select(x=>x.ToString())) +
  32. string.Join("", trees.Select(x=>x.ToString()));
  33. }
  34. }
  35.  
  36. public class Test
  37. {
  38. public static void Main()
  39. {
  40. var xml = @"<?xml version=""1.0"" encoding=""UTF-8""?>
  41. <tree>
  42. <name>Берёза</name>
  43. <age>3</age>
  44. <node>
  45. <name>Лист1</name>
  46. <age>1</age>
  47. </node>
  48. <node>
  49. <name>Лист2</name>
  50. <age>1</age>
  51. </node>
  52. <tree>
  53. <name>Персик</name>
  54. <age>3</age>
  55. <node>
  56. <name>Лист11</name>
  57. <age>1</age>
  58. </node>
  59. <node>
  60. <name>Лист22</name>
  61. <age>1</age>
  62. </node>
  63. </tree>
  64. </tree>
  65. ";
  66.  
  67. var reader = new StringReader(xml);
  68. var result = (tree)new XmlSerializer(typeof (tree)).Deserialize(reader);
  69.  
  70. Console.WriteLine(result.ToString());
  71. }
  72. }
Success #stdin #stdout 0.25s 32312KB
stdin
Standard input is empty
stdout
(tree) name: Берёза, age: 3
(node) name: Лист1, age: 1
(node) name: Лист2, age: 1
(tree) name: Персик, age: 3
(node) name: Лист11, age: 1
(node) name: Лист22, age: 1