using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Xml;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Linq;
namespace RdXML
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string sNode2Value = "";
private void Form1_Load(object sender, EventArgs e)
{
string sFile = @"C:\csv\Base.xml";//文档路径
string sNode1 = "SESION"; //第一节点
string sNode2 = "S1"; //要查找/改变的节点
string sRootName = "CONFIG"; //根节点
string change = "MYXML"; //需要改变的节点的值
string addName = "XML";
string addValue = "123";
getNode2(sFile, sRootName, sNode1, sNode2);
changeNode2(sFile, sRootName, sNode1, sNode2, change);
delNode2(sFile, sRootName, sNode1, sNode2);
addNode2(sFile, sRootName, sNode1, addName, addValue);
}
#region 读取Node2的值
public void getNode2(string FullFile, string sRootName, string sNodel, string sNode2)
{
sNode2 = sNode2.ToUpper();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(FullFile);//加载文件
XmlNode xn = xmlDoc.SelectSingleNode(sRootName);
XmlNodeList xnl = xn.ChildNodes;
//XmlNodeList nodeList = xmlDoc.SelectSingleNode("CONFIG").ChildNodes;//获取根节点的所有子节点
foreach (XmlNode xnf in xnl)
{
XmlElement xmlDoc2 = (XmlElement)xnf;
XmlNodeList nodelist2 = xmlDoc2.ChildNodes;
foreach (XmlNode xn2 in nodelist2)
{
string xn2Name = xn2.Name;
if (xn2Name.Equals(sNode2))
{
sNode2Value = xn2.InnerText;
break;
}
}
}
MessageBox.Show(sNode2Value);
//return sNode2Value;
}
#endregion
#region 删除一个节点
public void delNode2(string FullFile, string sRootName, string sNodel, string sNode2)
{
sNode2 = sNode2.ToUpper();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(FullFile);//加载文件
XmlNode xn = xmlDoc.SelectSingleNode(sRootName);
XmlNodeList xnl = xn.ChildNodes;
XmlNodeList nodeList = xmlDoc.SelectSingleNode("CONFIG").ChildNodes;//获取根节点的所有子节点
foreach (XmlNode xnf in xnl)
{
XmlElement xmlDoc2 = (XmlElement)xnf;
XmlNodeList nodelist2 = xmlDoc2.ChildNodes;
foreach (XmlNode xn2 in nodelist2)
{
string xn2Name = xn2.Name;
if (xn2Name.Equals(sNode2))
{
xmlDoc2.RemoveChild(xn2);
xn2.RemoveAll();
break;
}
}
}
xmlDoc.Save(FullFile); //保存
}
#endregion
#region 添加一个节点
public void addNode2(string FullFile, string sRootName, string sNodel, string addName, string addValue)
{
string xn2Name = "";
int num = 0;
addName = addName.ToUpper();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(FullFile);//加载文件
XmlNode xn = xmlDoc.SelectSingleNode(sRootName);
XmlNodeList xnl = xn.ChildNodes;
//XmlNodeList nodeList = xmlDoc.SelectSingleNode("CONFIG").ChildNodes;//获取根节点的所有子节点
foreach (XmlNode xnf in xnl)
{
XmlElement xmlDoc2 = (XmlElement)xnf;
XmlNodeList nodelist2 = xmlDoc2.ChildNodes;
foreach (XmlNode xn2 in nodelist2)
{
xn2Name = xn2.Name;
if (xn2Name.Equals(addName))
{
num++;
}
}
if (num == 0)
{
foreach (XmlNode xn2 in nodelist2)
{
xn2Name = xn2.Name;
XmlElement sNode2 = xmlDoc.CreateElement(addName);
sNode2.InnerText = addValue;
xnf.AppendChild(sNode2);
xmlDoc.Save(FullFile); //保存
break;
}
}
}
}
#endregion
#region 改变节点的值
public void changeNode2(string FullFile, string sRootName, string sNodel, string sNode2, string change)
{
sNode2 = sNode2.ToUpper();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(FullFile);//加载文件
XmlNode xn = xmlDoc.SelectSingleNode(sRootName);
XmlNodeList xnl = xn.ChildNodes;
//XmlNodeList nodeList = xmlDoc.SelectSingleNode("CONFIG").ChildNodes;//获取根节点的所有子节点
foreach (XmlNode xnf in xnl)
{
XmlElement xmlDoc2 = (XmlElement)xnf;
XmlNodeList nodelist2 = xmlDoc2.ChildNodes;
foreach (XmlNode xn2 in nodelist2)
{
string xn2Name = xn2.Name;
if (xn2Name.Equals(sNode2))
{
xn2.InnerText = change;
break;
}
}
}
xmlDoc.Save(FullFile); //保存
}
#endregion
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Xml;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Linq;
namespace RdXML
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string sNode2Value = "";
private void Form1_Load(object sender, EventArgs e)
{
string sFile = @"C:\csv\Base.xml";//文档路径
string sNode1 = "SESION"; //第一节点
string sNode2 = "S1"; //要查找/改变的节点
string sRootName = "CONFIG"; //根节点
string change = "MYXML"; //需要改变的节点的值
string addName = "XML";
string addValue = "123";
getNode2(sFile, sRootName, sNode1, sNode2);
changeNode2(sFile, sRootName, sNode1, sNode2, change);
delNode2(sFile, sRootName, sNode1, sNode2);
addNode2(sFile, sRootName, sNode1, addName, addValue);
}
#region 读取Node2的值
public void getNode2(string FullFile, string sRootName, string sNodel, string sNode2)
{
sNode2 = sNode2.ToUpper();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(FullFile);//加载文件
XmlNode xn = xmlDoc.SelectSingleNode(sRootName);
XmlNodeList xnl = xn.ChildNodes;
//XmlNodeList nodeList = xmlDoc.SelectSingleNode("CONFIG").ChildNodes;//获取根节点的所有子节点
foreach (XmlNode xnf in xnl)
{
XmlElement xmlDoc2 = (XmlElement)xnf;
XmlNodeList nodelist2 = xmlDoc2.ChildNodes;
foreach (XmlNode xn2 in nodelist2)
{
string xn2Name = xn2.Name;
if (xn2Name.Equals(sNode2))
{
sNode2Value = xn2.InnerText;
break;
}
}
}
MessageBox.Show(sNode2Value);
//return sNode2Value;
}
#endregion
#region 删除一个节点
public void delNode2(string FullFile, string sRootName, string sNodel, string sNode2)
{
sNode2 = sNode2.ToUpper();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(FullFile);//加载文件
XmlNode xn = xmlDoc.SelectSingleNode(sRootName);
XmlNodeList xnl = xn.ChildNodes;
XmlNodeList nodeList = xmlDoc.SelectSingleNode("CONFIG").ChildNodes;//获取根节点的所有子节点
foreach (XmlNode xnf in xnl)
{
XmlElement xmlDoc2 = (XmlElement)xnf;
XmlNodeList nodelist2 = xmlDoc2.ChildNodes;
foreach (XmlNode xn2 in nodelist2)
{
string xn2Name = xn2.Name;
if (xn2Name.Equals(sNode2))
{
xmlDoc2.RemoveChild(xn2);
xn2.RemoveAll();
break;
}
}
}
xmlDoc.Save(FullFile); //保存
}
#endregion
#region 添加一个节点
public void addNode2(string FullFile, string sRootName, string sNodel, string addName, string addValue)
{
string xn2Name = "";
int num = 0;
addName = addName.ToUpper();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(FullFile);//加载文件
XmlNode xn = xmlDoc.SelectSingleNode(sRootName);
XmlNodeList xnl = xn.ChildNodes;
//XmlNodeList nodeList = xmlDoc.SelectSingleNode("CONFIG").ChildNodes;//获取根节点的所有子节点
foreach (XmlNode xnf in xnl)
{
XmlElement xmlDoc2 = (XmlElement)xnf;
XmlNodeList nodelist2 = xmlDoc2.ChildNodes;
foreach (XmlNode xn2 in nodelist2)
{
xn2Name = xn2.Name;
if (xn2Name.Equals(addName))
{
num++;
}
}
if (num == 0)
{
foreach (XmlNode xn2 in nodelist2)
{
xn2Name = xn2.Name;
XmlElement sNode2 = xmlDoc.CreateElement(addName);
sNode2.InnerText = addValue;
xnf.AppendChild(sNode2);
xmlDoc.Save(FullFile); //保存
break;
}
}
}
}
#endregion
#region 改变节点的值
public void changeNode2(string FullFile, string sRootName, string sNodel, string sNode2, string change)
{
sNode2 = sNode2.ToUpper();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(FullFile);//加载文件
XmlNode xn = xmlDoc.SelectSingleNode(sRootName);
XmlNodeList xnl = xn.ChildNodes;
//XmlNodeList nodeList = xmlDoc.SelectSingleNode("CONFIG").ChildNodes;//获取根节点的所有子节点
foreach (XmlNode xnf in xnl)
{
XmlElement xmlDoc2 = (XmlElement)xnf;
XmlNodeList nodelist2 = xmlDoc2.ChildNodes;
foreach (XmlNode xn2 in nodelist2)
{
string xn2Name = xn2.Name;
if (xn2Name.Equals(sNode2))
{
xn2.InnerText = change;
break;
}
}
}
xmlDoc.Save(FullFile); //保存
}
#endregion
}
}