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 的标准 ...
随机推荐
- C#中jQuery Ajax实例(一)
目标:在aspx页面输入两参数,传到后台.cs代码,在无刷新显示到前台 下面是我的Ajax异步传值的第一个实例 1.前台html代码: <html xmlns="http://www. ...
- JavaScript实现在textbox输入时自动去数据库匹配并找出类似值列出,选择后记得将值填入本textbox及下一个textbox
1. <script src='<%= Application["rootURL"] %>JS/jquery-1.4.1.min.js' type="t ...
- thinkphp 加载静态框架frameset frame 浏览器显示空白
我觉得静态框架这个东西非常奇怪,可能是因为没有研究透它. 我的情况是这样的,我之前做过的一个面向对象没有基于thinkPHP,的项目中用同一套后台静态框架没有问题,但用thinkphp后台的index ...
- webApi中参数传递
webApi中参数传递 一:无参数的get方法: 前端: function GetNoParam() { //为了统一:我们都采用$.ajax({}) 方法; $.ajax({ url: '/a ...
- centos linux安全和调优 第四十一节课
centos linux安全和调优 第四十一节课 上半节课 Linux安全 下半节课 Linux调优 2015-07-01linux安全和调优 [复制链接]--http://www.apele ...
- Android 利用ListView制作带竖线的多彩表格
1.listview与GridView 其实Android本身是有表格控件(GridView)的,但是GridView的每一列的宽度被限定为一样宽,有时设计表格时,列宽不可能为同一宽度,所有可以用Li ...
- Spring中的工厂模式和单例模式
Spring预备知识(适合中小型项目) 作用:集成和管理其他框架 工厂模式: A a = new A( ); 将类所要创建的对象写入工厂,统一进行管理 package com.spring; pu ...
- (copy) How to remote desktop a Fedora 19 from a Windows 7
source: http://forums.fedoraforum.org/showthread.php?t=293665 Try xrdp or freerdpInstall xrdp or fre ...
- 11月23日《奥威Power-BI报表集成到其他系统》腾讯课堂开课啦
听说明天全国各地区都要冷到爆了,要是天气冷到可以放假就好了.想象一下大冷天的一定要在被窝里度过才对嘛,索性明天晚上来个相约吧,相约在被窝里看奥威Power-BI公开课如何? 上周奥威公开 ...
- [ROS]1 小乌龟
对于一个新新新手,Linux,ROS都要学习.安装ROS真的很讨厌了,于是采用易科机器人实验室的ubuntu12.04-amd64-ros-exbot-h2-140520版本. 测试一下小乌龟节点.主 ...