BioCore  5.0.0
A Windows .NET microscopy library and application for viewing, editing, and annotating images.
Loading...
Searching...
No Matches
XMLView.cs
Go to the documentation of this file.
1using System.Xml;
2
3namespace BioCore
4{
5 /* It's a form that displays an XML tree */
6 public partial class XMLView : Form
7 {
8 XmlTreeDisplay tree = null;
9 public XMLView(string xml)
10 {
11 InitializeComponent();
12 tree = new XmlTreeDisplay(xml);
13 tree.Dock = DockStyle.Fill;
14 this.Controls.Add(tree);
15
16 }
17 }
18 /* It takes an XML string and displays it in a tree view */
19 public class XmlTreeDisplay : System.Windows.Forms.UserControl
20 {
21 private System.Windows.Forms.TreeView treeXml = new TreeView();
22
23 /* It's a constructor that takes an XML string and displays it in a tree view. */
24 public XmlTreeDisplay(string xml)
25 {
26 treeXml.Nodes.Clear();
27 this.Controls.Add(treeXml);
28 // Load the XML Document
29 XmlDocument doc = new XmlDocument();
30 try
31 {
32 doc.LoadXml(xml);
33 //doc.Load("");
34 }
35 catch (Exception err)
36 {
37 MessageBox.Show(err.Message);
38 return;
39 }
40
41 ConvertXmlNodeToTreeNode(doc, treeXml.Nodes);
42 treeXml.Nodes[0].ExpandAll();
43 treeXml.Dock = DockStyle.Fill;
44 }
45
51 private void ConvertXmlNodeToTreeNode(XmlNode xmlNode,
52 TreeNodeCollection treeNodes)
53 {
54
55 TreeNode newTreeNode = treeNodes.Add(xmlNode.Name);
56
57 switch (xmlNode.NodeType)
58 {
59 case XmlNodeType.ProcessingInstruction:
60 case XmlNodeType.XmlDeclaration:
61 newTreeNode.Text = "<?" + xmlNode.Name + " " +
62 xmlNode.Value + "?>";
63 break;
64 case XmlNodeType.Element:
65 newTreeNode.Text = "<" + xmlNode.Name + ">";
66 break;
67 case XmlNodeType.Attribute:
68 newTreeNode.Text = "ATTRIBUTE: " + xmlNode.Name;
69 break;
70 case XmlNodeType.Text:
71 case XmlNodeType.CDATA:
72 newTreeNode.Text = xmlNode.Value;
73 break;
74 case XmlNodeType.Comment:
75 newTreeNode.Text = "<!--" + xmlNode.Value + "-->";
76 break;
77 }
78
79 if (xmlNode.Attributes != null)
80 {
81 foreach (XmlAttribute attribute in xmlNode.Attributes)
82 {
83 ConvertXmlNodeToTreeNode(attribute, newTreeNode.Nodes);
84 }
85 }
86 foreach (XmlNode childNode in xmlNode.ChildNodes)
87 {
88 ConvertXmlNodeToTreeNode(childNode, newTreeNode.Nodes);
89 }
90 }
91 }
92}
XMLView(string xml)
Definition XMLView.cs:9
XmlTreeDisplay(string xml)
Definition XMLView.cs:24