c# 操作xml题目
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、新建窗口应用程序,实现以下功能。放置一个菜单项(文件),包含三个子菜单项(打开xml,关闭,退出),
当点击“打开xml”时,程序直接打开程序当前目录下的projects.xml,解析出文件内容,存入Datatable中,
然后显示到窗口上。
当点击"关闭"时,清空窗口上的显示。
当点击“退出”时,关闭窗口。
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;
} }
}
Form1.cs
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; } }
}
c# 操作xml题目的更多相关文章
- Asp.Net 操作XML文件的增删改查 利用GridView
不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...
- php中通过DOM操作XML
DOM文档在js里早就接触过,知道DOM不但可以操作html文档,还可以操作XHTML,XML等文档,有着极强的通用性,下面我们通过两个小例子,看看在PHP中是如何用DOM操作XML文档的,和js中差 ...
- 使用dom4j操作XML
DOM4J介绍 DOM4J是使用Java语言编写的,用于读写及操作XML的一套组件,DOM4J同时具有DOM修改文件的优点和SAX读取快速的优点. DOM4J的使用 首先下载dom4j的JAR包,我用 ...
- 使用JDOM操作XML
JDOM介绍 JDOM是使用Java语言编写的,用于读写及操作XML的一套组件,Jdom同时具有DOM修改文件的优点和SAX读取快速的优点. JDOM的使用 首先下载JDOM的JAR包,本文使用的是j ...
- php : DOM 操作 XML
DOM 操作 XML 基本用法 XML文件: person.XML <?xml version="1.0" encoding="utf-8" ?> ...
- Strus2第一次课:dom4j操作xml
先从底层的xml操作技术记录: 当我们新建一个项目,什么架包都没加入的时候,java提供了 org.w3c.dom给我们操作xml里面的元素 import org.w3c.dom.Document; ...
- .NET 操作XML
在C#.net中如何操作XML 需要添加的命名空间: using System.Xml; 定义几个公共对象: XmlDocument xmldoc ; XmlNode xmlnode ; XmlEle ...
- php操作xml
最近计划写个人的小网站,一系列原因选择了用php来写,最大的问题就是虽然php很流行,但我从来没有接触过php,看了一个多星期的基本语法后做些小练习热热身,但是期间是各种问题啊,主要是对php不熟悉, ...
- JavaScript操作XML
JavaScript操作XML (一) JavaScript操作XML是通过XML DOM来完成的.那么什么是XML DOM呢?XML DOM 是: 用于 XML 的标准对象模型 用于 XML 的标准 ...
随机推荐
- MVC强类型和弱类型的区别
1 强类型的处理 首先必须要有一个对象的实体类,UserINfo就是一个实体类,如下: public class UserInfo() { public int Id{set;get;} publi ...
- js 事件监听封装
var eventUtil={//添加句柄 //element,节点 //type,事件类型 //handler,函数 addHandler:function(element,type,handler ...
- Linux 技巧:让进程在后台可靠运行的几种方法
我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开 ...
- centOS中wget的使用方法
对于 Linux 用户来说,几乎每天都在使用它. 下面为大家介绍几个有用的 CentOS wget 小技巧,可以让你更加高效而灵活的使用CentOS wget. CentOS wget 使用技巧 $ ...
- javascript设计模式学习之九——命令模式
一.命令模式使用场景及定义 命令模式常见的使用场景是:有时候需要向某些对象发送请求,但是并不知道请求的接受者是谁,也不知道请求的具体操作是什么.此时希望用一种松耦合的方式来设计程序,使得请求的发送者和 ...
- H2的MVStore
翻译自http://www.h2database.com/html/mvstore.html 转载请著名出处,及译者信息. 第一次翻译,诸多不妥请谅解,谢谢. 概述 MVStore是一个持久化的.日志 ...
- 12C清理asm磁盘组和文件
磁盘清理(disk scrub)可以检查逻辑坏块,并使用镜像数据自动修复数据(必须是normal.high冗余级别).磁盘清理过程和磁盘组的rebalance相结合,可以减少对I/O资源的使用.清理过 ...
- git提交
1.git pull 本地已经commit 2.git checkout master 3.git pull 4.git checkout - 5.git merge master 6.git pus ...
- Java基础之在窗口中绘图——绘制直线和矩形(Sketcher 2 drawing lines and rectangles)
控制台程序. import javax.swing.JComponent; import java.util.*; import java.awt.*; import java.awt.geom.*; ...
- session 实现保存用户信息
index.jsp <body> <div style="margin: 0 auto; width: 500px; text-align: center;"&g ...