using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.Xml;
class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void buttonLoopThroughDocument_Click(object sender, EventArgs e) {
listBoxXmlNodes.Items.Clear();
XmlDocument document = new XmlDocument();
document.Load("Books.xml");
RecurseXmlDocument((XmlNode)document.DocumentElement, 0);
}
private void RecurseXmlDocument(XmlNode root, int indent) {
if (root == null)
return;
if (root is XmlElement){
listBoxXmlNodes.Items.Add(root.Name.PadLeft(root.Name.Length + indent));
if (root.HasChildNodes)
RecurseXmlDocument(root.FirstChild, indent + 2);
if (root.NextSibling != null)
RecurseXmlDocument(root.NextSibling, indent);
} else if (root is XmlText) {
string text = ((XmlText)root).Value;
listBoxXmlNodes.Items.Add(text.PadLeft(text.Length + indent));
} else if (root is XmlComment) {
string text = root.Value;
listBoxXmlNodes.Items.Add(text.PadLeft(text.Length + indent));
if (root.HasChildNodes)
RecurseXmlDocument(root.FirstChild, indent + 2);
if (root.NextSibling != null)
RecurseXmlDocument(root.NextSibling, indent);
}
}
private void buttonCreateNode_Click(object sender, EventArgs e) {
XmlDocument document = new XmlDocument();
document.Load("Books.xml");
XmlElement root = document.DocumentElement;
XmlElement newBook = document.CreateElement("book");
XmlElement newTitle = document.CreateElement("title");
XmlElement newAuthor = document.CreateElement("author");
XmlElement newCode = document.CreateElement("code");
XmlText title = document.CreateTextNode("C#");
XmlText author = document.CreateTextNode("AAA");
XmlText code = document.CreateTextNode("1234567890");
XmlComment comment = document.CreateComment("comment");
newBook.AppendChild(comment);
newBook.AppendChild(newTitle);
newBook.AppendChild(newAuthor);
newBook.AppendChild(newCode);
newTitle.AppendChild(title);
newAuthor.AppendChild(author);
newCode.AppendChild(code);
root.InsertAfter(newBook, root.FirstChild);
document.Save("Books.xml");
}
private void buttonDeleteNode_Click(object sender, EventArgs e) {
XmlDocument document = new XmlDocument();
document.Load("Books.xml");
XmlElement root = document.DocumentElement;
if (root.HasChildNodes) {
XmlNode book = root.LastChild;
root.RemoveChild(book);
document.Save("Books.xml");
}
}
private void buttonSelect_Click(object sender, EventArgs e) {
XmlDocument document = new XmlDocument();
document.Load("Books.xml");
XmlElement root = document.DocumentElement;
XmlNodeList nodeList = root.SelectNodes("//book[@pages='1000']");
foreach (XmlNode n in nodeList) {
MessageBox.Show(n.InnerText);
}
}
private void InitializeComponent() {
this.buttonLoopThroughDocument = new System.Windows.Forms.Button();
this.listBoxXmlNodes = new System.Windows.Forms.ListBox();
this.buttonCreateNode = new System.Windows.Forms.Button();
this.buttonDeleteNode = new System.Windows.Forms.Button();
this.buttonSelect = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// buttonLoopThroughDocument
//
this.buttonLoopThroughDocument.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttonLoopThroughDocument.Location = new System.Drawing.Point(444, 13);
this.buttonLoopThroughDocument.Name = "buttonLoopThroughDocument";
this.buttonLoopThroughDocument.TabIndex = 0;
this.buttonLoopThroughDocument.Text = "Loop";
this.buttonLoopThroughDocument.Click += new System.EventHandler(this.buttonLoopThroughDocument_Click);
//
// listBoxXmlNodes
//
this.listBoxXmlNodes.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listBoxXmlNodes.FormattingEnabled = true;
this.listBoxXmlNodes.Location = new System.Drawing.Point(13, 13);
this.listBoxXmlNodes.Name = "listBoxXmlNodes";
this.listBoxXmlNodes.Size = new System.Drawing.Size(424, 225);
this.listBoxXmlNodes.TabIndex = 1;
//
// buttonCreateNode
//
this.buttonCreateNode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttonCreateNode.Location = new System.Drawing.Point(444, 43);
this.buttonCreateNode.Name = "buttonCreateNode";
this.buttonCreateNode.TabIndex = 2;
this.buttonCreateNode.Text = "Create Node";
this.buttonCreateNode.Click += new System.EventHandler(this.buttonCreateNode_Click);
//
// buttonDeleteNode
//
this.buttonDeleteNode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttonDeleteNode.Location = new System.Drawing.Point(444, 73);
this.buttonDeleteNode.Name = "buttonDeleteNode";
this.buttonDeleteNode.TabIndex = 3;
this.buttonDeleteNode.Text = "Delete Node";
this.buttonDeleteNode.Visible = false;
this.buttonDeleteNode.Click += new System.EventHandler(this.buttonDeleteNode_Click);
//
// buttonSelect
//
this.buttonSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttonSelect.Location = new System.Drawing.Point(444, 103);
this.buttonSelect.Name = "buttonSelect";
this.buttonSelect.TabIndex = 4;
this.buttonSelect.Text = "Select";
this.buttonSelect.Visible = false;
this.buttonSelect.Click += new System.EventHandler(this.buttonSelect_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(531, 250);
this.Controls.Add(this.buttonSelect);
this.Controls.Add(this.buttonDeleteNode);
this.Controls.Add(this.buttonCreateNode);
this.Controls.Add(this.listBoxXmlNodes);
this.Controls.Add(this.buttonLoopThroughDocument);
this.Name = "Form1";
this.Text = "Xml Nodes";
this.ResumeLayout(false);
}
private System.Windows.Forms.Button buttonLoopThroughDocument;
private System.Windows.Forms.ListBox listBoxXmlNodes;
private System.Windows.Forms.Button buttonCreateNode;
private System.Windows.Forms.Button buttonDeleteNode;
private System.Windows.Forms.Button buttonSelect;
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}
|