*** empty log message ***
[m17n/m17n-lib-cs.git] / xml.cs
1 using System;
2 using System.IO;
3 using System.Collections.Generic;
4 using System.Xml;
5 using Mvp.Xml.XInclude;
6
7 public class Test
8 {
9   static void read_element (XmlTextReader reader)
10   {
11     bool cont = true;
12
13     Console.Write ("\n(" + reader.Name);
14     if (reader.MoveToFirstAttribute ())
15       {
16         do {
17           Console.Write (" (" + reader.Name + " " + reader.Value + ")");
18         } while (reader.MoveToNextAttribute ());
19         reader.MoveToElement ();
20       }
21     while (cont && reader.Read ())
22       switch (reader.NodeType)
23         {
24         case XmlNodeType.Element:
25           if (reader.Name == "doxygen")
26             reader.Skip ();
27           else
28             read_element (reader);
29           break;
30         case XmlNodeType.Text:
31           Console.Write ("\n\"" + reader.Value + "\"");
32           break;
33         case XmlNodeType.EndElement:
34           cont = false;
35           break;
36         }
37     Console.Write (")");
38   }
39
40   static void print_node (XmlNode node)
41   {
42     XmlAttributeCollection acol = node.Attributes;
43     if (acol != null)
44       {
45         XmlAttribute a = node.Attributes["key"];
46         if (a != null)
47           Console.Write (a.Value);
48       }
49     Console.Write ("\n(");
50     switch (node.NodeType)
51       {
52       case XmlNodeType.Element:
53         Console.Write (node.Name);
54         XmlAttributeCollection attrs = node.Attributes;
55         foreach (XmlAttribute attr in attrs)
56           Console.Write (" ({0} {1})", attr.Name, attr.Value);
57         break;
58       case XmlNodeType.Text:
59         Console.WriteLine ("\n\"{0}\"", node.Value);
60         break;
61       default:
62         Console.WriteLine ("\n{0}", node.NodeType);
63         break;
64       }
65     node = node.FirstChild;
66     while (node != null)
67       {
68         print_node (node);
69         node = node.NextSibling;
70       }
71     Console.Write (")");
72   }
73
74
75   public static void Main (string[] args)
76   {
77     FileStream stream;
78     XmlTextReader reader;
79     XmlDocument doc;
80
81 #if false
82     stream = File.OpenRead ("/usr/local/work/m17n-db-xml/MIM/ispell.mimx");
83     reader = new XmlTextReader (stream);
84     doc = new XmlDocument ();
85     reader.WhitespaceHandling = WhitespaceHandling.None;
86     reader.Read ();
87     Console.WriteLine (reader.Name + ":" + reader.NodeType);
88     while (reader.NodeType != XmlNodeType.Element)
89       reader.Read ();
90     doc.LoadXml ("<" + reader.Name + "/>");
91     reader.Read ();
92     while (reader.NodeType != XmlNodeType.Element
93            || reader.Name != args[0])
94       reader.Skip ();
95     doc.DocumentElement.InsertAfter (doc.ReadNode (reader), null);
96     print_node (doc.DocumentElement);
97     reader.Close ();
98     stream.Dispose ();
99 #else
100     doc = new XmlDocument (xex);
101     XmlReader read = new XIncludingReader (XmlReader.Create (args[0]));
102     doc.Load (read);
103     print_node (doc.DocumentElement);
104 #endif
105   }
106 }