winfrom 实现读取修改xml

在winfrom窗体中放一个文本框,2个按钮,一个panle,如下图

form.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 XMLConfiger

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

public string Path;

xmlConfig xmlconfig;

//读取xml内容

private void button1_Click(object sender, EventArgs e)

{

OpenFileDialog fileName = new OpenFileDialog();//定义一个文件打开控件

fileName.InitialDirectory = Application.StartupPath;//设置打开控件后,默认目录为exe运行文件所在文件夹

fileName.Filter = "所有XML文件|*.XML";//设置控件打开的文件类型

fileName.FilterIndex = 2;//设置控件打开文件类型的显示顺序

fileName.RestoreDirectory = true;//设置对话框是否记忆之前打开的目录

if (fileName.ShowDialog() == DialogResult.OK)

{

Path = fileName.FileName.ToString();//获得用户选择的完整路径

Name = Path.Substring(Path.LastIndexOf("\\") + 1);//获取用户选择的不带路径的文件名

xmlconfig = new xmlConfig(Path);

int count = xmlconfig.GetCount();

int ysplit = 30;

int x1 = 3;

for (int i = 0; i < count; i++)

{

Label lb = new Label();

lb.Text = xmlconfig.GetName(i).ToString();

lb.Tag = "";

lb.Size = new System.Drawing.Size(60, 23);

lb.AutoSize = false;

TextBox tb = new TextBox();

tb.Text = xmlconfig.GetXmlNode(i).ToString();

tb.Tag = i;

lb.Location = new Point(x1, i * ysplit);

tb.Location = new Point(x1 + lb.Size.Width + 10, i * ysplit);

panel1.Controls.Add(lb);

panel1.Controls.Add(tb);

}

}

}

//修改xml内容

private void button2_Click(object sender, EventArgs e)

{

for (int i = 0; i < this.panel1.Controls.Count; i++)

{

if (this.panel1.Controls[i].Tag != null && this.panel1.Controls[i].Tag.ToString() != "")

{

TextBox textbox1 = (TextBox)(this.panel1.Controls[i]);

xmlconfig.SavaXMLConfig(Convert.ToInt32(textbox1.Tag), textbox1.Text);

}

}

xmlconfig.SavaConfig();

}

}

}

xmlConfig.cs中的代码

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Xml;

using System.IO;

using System.Data;

using System.Windows.Forms;

namespace XMLConfiger

{

public class xmlConfig

{

public int count = 0;

public string path="";

private List<string> strlist = new List<string>();

private List<string> listName = new List<string>();

//构造函数获得所有信息

public xmlConfig(string Path)

{

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(Path);//读取指定的XML文档

path = Path;

XmlNode roomlist = xmlDoc.SelectSingleNode("rss");

XmlNodeList list = roomlist.ChildNodes;

foreach (XmlNode item in list)

{

listName.Add(item.Attributes["Name"].Value);

strlist.Add(item.InnerText);

count = listName.Count;

}

}

//获取所有节点的个数

public int GetCount()

{

return count;

}

//通过tag值获取当前返回的Name

public string GetName(int tag)

{

return listName[tag];

}

//通过tag值获取当前返回的value

public string GetXmlNode(int tag)

{

return strlist[tag];

}

//修改xml中所有的内容

public void SavaConfig()

{

XmlDocument XMLDoc = new XmlDocument();

XMLDoc.Load(path);

XmlNodeList nodeList=XMLDoc.SelectSingleNode("rss").ChildNodes;//获取节点的所有子节点

for (int i = 0; i < nodeList.Count; i++)//遍历所有子节点

{

XmlElement xe = (XmlElement)nodeList[i];

XmlNode ChildXml = nodeList[i];

for (int j = 0; j < strlist.Count; j++)

{

if (listName[j] == ChildXml.Attributes["Name"].Value)

{

xe.SetAttribute("Name", listName[i]);

xe.InnerText = strlist[i];

break;

}

}

}

XMLDoc.Save(path);//保存。

}

//修改xml中某一个节点

public void SavaXMLConfig(int tag, string Name)

{

strlist[tag] = Name;

}

}

}

xml文件

<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0">

<Student Name="姓名">宁泽涛</Student>

<Age Name="年龄">22</Age>

<Hobby Name="爱好">游泳</Hobby>

</rss>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 19:38:27

winfrom 实现读取修改xml的相关文章

Java xml 操作(Dom4J修改xml &#160;&#160;+ xPath技术 &#160;+ SAX解析 + XML约束)

1 XML基础 1)XML的作用 1.1 作为软件配置文件 1.2 作为小型的"数据库" 2)XML语法(由w3c组织规定的) 标签: 标签名不能以数字开头,中间不能有空格,区分大小写.有且仅有一个根标签. 属性: 可有多个属性,但属性值必须用引号(单引号或双引号)包含,但不能省略,也不能单 双混用. 文档声明: <?xml version="1.0" encoding="utf-8"?> encoding="utf-8&q

jQuery append xmlNode 修改 xml 内容

jQuery append xmlNode 修改 xml 内容 http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/04/29/jquery-xmlext-plugin.aspx jQuery读取xml内容是很简单的操作,但是,要修改就麻烦了.上面给了1个plugin,可以试试: 大家可以下載 jquery.xmlext.js回去玩,或是直接在 Mini jQuery Lab 用以下程式做測試: $.getScript("jque

DOS 批处理 修改xml文件

之前对批处理和dos只停留在cd ping ipconfig水平,我以为改个文件应该很简单吧,把文件读出来做个替换再写回去不就欧了,百度个例子改改,那还不是分分钟的事,哪知道事实比想的要复杂的多. 我要修改的是这样一个文件内容: .... mylove=“******” .... mylove=“******”单独占一行,我只需修改*号部分. 首先我想用set命令把一个文件内容赋值给一个变量,各种尝试最后放弃了,本来以为set命令的a开关可以实现,哪知道这货只支持运算符,强烈建议a开关支持表达式

06_XML的写入_dom4j添加、删除、修改Xml文件内容

[工程截图] [person.xml]准备一个xml文件 <?xml version="1.0" encoding="UTF-8"?> <students> <student id="88888" phone="15888888888" sex="男"> <name>张三</name> <age>18</age> <s

myeclipse修改xml文件字体大小

myeclipse中怎么修改xml文件的字体大小呢?网上搜了很多,得到的答案基本都是: window--preferences--General--appearance--colors   and   fonts--basic--text font 其实这项只能修改java文件的字体大小,并不能修改xml文件的字体,如果要修改xml文件字体大小,点击 修改这项!

UWP 读取本地XML文件

读取本地XML文件时要将xxx.xml文件的“生成操作”改为“嵌入的资源”会比较好,在手机上运行的话需要改为“内容” <?xml version="1.0" encoding="utf-8"?> <DataSet xmlns="http://WebXml.com.cn/"> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata

Dom4j 读取一个XML文件和将String写成XML文件

dom4j保存文件xml格式和读取XML文件内容,代码如下: package com.qmjs.imut import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import org.apache.log4j.Logger; import org.dom4j.Document; import org.dom4j.DocumentHelper; i

Android修改XML文件

最近在项目中需要使用XML记录数据,网上这方面的文章较少,记录一下 使用DOM方式 [java] view plaincopy /** * 追加内容到XML文档 * @param instructions * @throws ParserConfigurationException * @throws SAXException * @throws IOException * @throws TransformerException */ public void append2XML(String

后台读取applicationContext.xml引发的奇葩问题

SpringMVC整合ibatis时,写了一个测试方法,运行正常,当运行另一个方法时报找不到对应的路径.此处无法理解,为什么同样规则的请求,第一次能够拦截第二次却提示找不到对应的处理方法. 后来将添加的第二个方法逐一注释掉,才发现在Dao层中读取applicationContext.xml时,为了让dao层的各方法共用一个applicationContext.xml,我将读取它的代码提取了出来,作为成员变量 处理了.后将每个dao方法添加同样的读取代码后,程序正常运行.添加代码如下: Appli