cē操作xmlテーマ
7724 ワード
ダウンロード
1、テキストファイルを新規作成して、名前は:projects.txt。
2、拡張子の名前をprojects.xmlに変更します。
3、メモ帳でこのファイルを編集します。utf-8を使用して符号化します。内容は以下の通りです
「xmlを開く」をクリックすると、プログラムは直接にプログラムの現在のディレクトリの下のprojects.xmlを開いて、ファイルの内容を解析して、Datableに保存します。
ウィンドウに表示します。
「閉じる」をクリックすると、ウィンドウの表示が空になります。
「終了」をクリックすると、ウィンドウを閉じます。
Rxml.cs
1、テキストファイルを新規作成して、名前は:projects.txt。
2、拡張子の名前をprojects.xmlに変更します。
3、メモ帳でこのファイルを編集します。utf-8を使用して符号化します。内容は以下の通りです
<?xml version="1.0" encoding="GB2312"?>
<root>
<projects>
<project>
<name> 1</name>
<url>http://baidu.com/</url>
<sqltype>mysql</sqltype>
<loginid>root</loginid>
<password>pwd</password>
<dt>2013-01-01</dt>
</project>
<project>
<name> 2</name>
<url>http://google.com/</url>
<sqltype>sql</sqltype>
<loginid>root</loginid>
<password>pwd</password>
<dt>2013-10-10</dt>
</project>
</projects>
</root>
4、新しいウィンドウアプリケーションを作成し、以下の機能を実現します。メニュー項目(ファイル)を一つ置いて、サブメニュー項目3つを含みます。「xmlを開く」をクリックすると、プログラムは直接にプログラムの現在のディレクトリの下のprojects.xmlを開いて、ファイルの内容を解析して、Datableに保存します。
ウィンドウに表示します。
「閉じる」をクリックすると、ウィンドウの表示が空になります。
「終了」をクリックすると、ウィンドウを閉じます。
Rxml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using System.Data;
namespace WindowsFormsApplication1
{
class Rxml
{
private XmlDocument doc;
public void createXML( string path) {
doc = new XmlDocument();
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "GB2312", null);
doc.AppendChild(dec);
XmlElement root = doc.CreateElement("root");
doc.AppendChild(root);
XmlNode projects = doc.CreateElement("projects");
root.AppendChild(projects);
doc.Save(path);
}
public void xmlload(string path) {
doc = new XmlDocument();
doc.Load(path);
}
public void addnode(string name,string url,string sqltype,string loginid,string password,string dt,string path ) {
xmlload(path);
XmlNode xmldocselect= doc.SelectSingleNode("/root/projects");
XmlElement e1 = doc.CreateElement("project");
XmlElement e2 = doc.CreateElement("name");
e2.InnerText = name;
e1.AppendChild(e2);
XmlElement e3 = doc.CreateElement("url");
e3.InnerText = url;
e1.AppendChild(e3);
XmlElement e4 = doc.CreateElement("sqltype");
e4.InnerText = sqltype;
e1.AppendChild(e4);
XmlElement e5 = doc.CreateElement("loginid");
e5.InnerText = loginid;
e1.AppendChild(e5);
XmlElement e6 = doc.CreateElement("password");
e6.InnerText = password;
e1.AppendChild(e6);
XmlElement e7 = doc.CreateElement("dt");
e7.InnerText = dt;
e1.AppendChild(e7);
xmldocselect.AppendChild(e1);
doc.Save(path);
}
public DataTable readxml(string path)
{
// 。
XmlTextReader read;
// xml, , 。
if (File.Exists(path))
{
read = new XmlTextReader(path);
}
else
{
Assembly asm = Assembly.GetExecutingAssembly();
Stream sm = asm.GetManifestResourceStream("Tetris.setting.xml");
read = new XmlTextReader(sm);
}
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Url", typeof(string));
dt.Columns.Add("Sqltype", typeof(string));
dt.Columns.Add("Loginid", typeof(string));
dt.Columns.Add("Password", typeof(string));
dt.Columns.Add("Dt", typeof(string));
DataRow row = dt.NewRow();
string key = "";
try
{
while (read.Read())
{
if (read.Name == "name")
{
key = read.ReadElementString().Trim();
string z = key.ToString().Trim();
row["Name"] = z;
}
else if (read.Name == "url")
{
key = read.ReadElementString().Trim();
string zz = key.ToString().Trim();
row["Url"] = zz;
}
else if (read.Name == "sqltype")
{
key = read.ReadElementString().Trim();
string zzz = key.ToString().Trim();
row["Sqltype"] = zzz;
}
else if (read.Name == "loginid")
{
key = read.ReadElementString().Trim();
string zzzz = key.ToString().Trim();
row["Loginid"] = zzzz;
}
else if (read.Name == "password")
{
key = read.ReadElementString().Trim();
string zzzzz = key.ToString().Trim();
row["Password"] = zzzzz;
}
else if (read.Name == "dt")
{
key = read.ReadElementString().Trim();
string zzzzzz = key.ToString().Trim();
row["Dt"] = zzzzzz;
dt.Rows.Add(row);
row = dt.NewRow();
}
}
}
// 。
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
// 。
finally
{
if (read != null)
{
read.Close();
}
}
return dt;
}
}
}
Form 1.using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Rxml z = new Rxml();
private void button1_Click(object sender, EventArgs e)
{
z.createXML(@"d:\bb.xml");
}
private void button2_Click(object sender, EventArgs e)
{
z.addnode(" 1", "http://baidu.com/", "mysql", "root", "pwd", "2013-01-01", @"d:\bb.xml");
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void xmlToolStripMenuItem_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = z.readxml(@"d:\bb.xml");
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = null;
}
}
}