XML文件内容如下:
<?
xml version
=
"
1.0
"
encoding
=
"
utf-8
"
?>
< keys >
< key >
< keyname > 2 </ keyname >
< musicsource > CD </ musicsource >
< musicaddr > 2 </ musicaddr >
< playway > 播放 </ playway >
</ key >
< key >
< keyname > 5 </ keyname >
< musicsource > MP3 </ musicsource >
< musicaddr > 7 </ musicaddr >
< playway > 停止 </ playway >
</ key >
< key >
< keyname > 3 </ keyname >
< musicsource > MP3 </ musicsource >
< musicaddr > 8 </ musicaddr >
< playway > 播放 </ playway >
</ key >
< key >
< keyname > 1 </ keyname >
< musicsource > MP3 </ musicsource >
< musicaddr > 1 </ musicaddr >
< playway > 连续播放 </ playway >
</ key >
< key >
< keyname > 4 </ keyname >
< musicsource > 调谐器 </ musicsource >
< musicaddr > 1 </ musicaddr >
< playway > 循环单曲 </ playway >
</ key >
</ keys >
< keys >
< key >
< keyname > 2 </ keyname >
< musicsource > CD </ musicsource >
< musicaddr > 2 </ musicaddr >
< playway > 播放 </ playway >
</ key >
< key >
< keyname > 5 </ keyname >
< musicsource > MP3 </ musicsource >
< musicaddr > 7 </ musicaddr >
< playway > 停止 </ playway >
</ key >
< key >
< keyname > 3 </ keyname >
< musicsource > MP3 </ musicsource >
< musicaddr > 8 </ musicaddr >
< playway > 播放 </ playway >
</ key >
< key >
< keyname > 1 </ keyname >
< musicsource > MP3 </ musicsource >
< musicaddr > 1 </ musicaddr >
< playway > 连续播放 </ playway >
</ key >
< key >
< keyname > 4 </ keyname >
< musicsource > 调谐器 </ musicsource >
< musicaddr > 1 </ musicaddr >
< playway > 循环单曲 </ playway >
</ key >
</ keys >
将XML节点读到LISTVIE上:
private
void
int_6243()
... {
this.list_6243.Items.Clear();
try
...{
XmlDocument MyXMLDoc = new XmlDocument();
MyXMLDoc.Load(Application .StartupPath + "/XML_6243.xml");
XmlNodeList MyNodes = MyXMLDoc.GetElementsByTagName("keyname");
foreach (XmlNode MyNode in MyNodes)
...{
string[] subItem =...{ MyNode.InnerText, "", "", "" };
this.list_6243.Items.Add(new ListViewItem(subItem));
}
// this.list_6243.Sorting = SortOrder.Ascending;
MyNodes = MyXMLDoc.GetElementsByTagName("musicsource");
int i = 0;
foreach (XmlNode MyNode in MyNodes)
...{
this.list_6243.Items[i++].SubItems[1].Text = MyNode.InnerText;
}
MyNodes = MyXMLDoc.GetElementsByTagName("musicaddr");
i = 0;
foreach (XmlNode MyNode in MyNodes)
...{
this.list_6243.Items[i++].SubItems[3].Text = MyNode.InnerText;
}
MyNodes = MyXMLDoc.GetElementsByTagName("playway");
i = 0;
foreach (XmlNode MyNode in MyNodes)
...{
this.list_6243.Items[i++].SubItems[2].Text = MyNode.InnerText;
}
}
catch (Exception ex)
...{
MessageBox.Show(ex.Message);
}
}
... {
this.list_6243.Items.Clear();
try
...{
XmlDocument MyXMLDoc = new XmlDocument();
MyXMLDoc.Load(Application .StartupPath + "/XML_6243.xml");
XmlNodeList MyNodes = MyXMLDoc.GetElementsByTagName("keyname");
foreach (XmlNode MyNode in MyNodes)
...{
string[] subItem =...{ MyNode.InnerText, "", "", "" };
this.list_6243.Items.Add(new ListViewItem(subItem));
}
// this.list_6243.Sorting = SortOrder.Ascending;
MyNodes = MyXMLDoc.GetElementsByTagName("musicsource");
int i = 0;
foreach (XmlNode MyNode in MyNodes)
...{
this.list_6243.Items[i++].SubItems[1].Text = MyNode.InnerText;
}
MyNodes = MyXMLDoc.GetElementsByTagName("musicaddr");
i = 0;
foreach (XmlNode MyNode in MyNodes)
...{
this.list_6243.Items[i++].SubItems[3].Text = MyNode.InnerText;
}
MyNodes = MyXMLDoc.GetElementsByTagName("playway");
i = 0;
foreach (XmlNode MyNode in MyNodes)
...{
this.list_6243.Items[i++].SubItems[2].Text = MyNode.InnerText;
}
}
catch (Exception ex)
...{
MessageBox.Show(ex.Message);
}
}
添加新节点到XML:
private
void
btn6243_Click(
object
sender, EventArgs e)
... {
if (this.numAddr.Value != 0 && this.comMusic.Text != "" && this.numKey.Value != 0 && this.comPlayWay.Text != "")
...{
XmlDocument MyXMLDoc = new XmlDocument();
MyXMLDoc.Load(Application .StartupPath + "/XML_6243.xml");
try
...{
string myfind = this.numKey.Value.ToString();
string myfindstring = "keys/key [keyname=" + '"' + myfind + '"' + "]";
XmlNode MyNode = MyXMLDoc.SelectSingleNode(myfindstring);
if (MyNode != null)
...{
MyXMLDoc.DocumentElement.RemoveChild(MyNode);//检查节点是否已经存在,存在的话则删除
}
XmlElement MyNewKey = MyXMLDoc.CreateElement("key");//新建节点
XmlElement MyKeyName = MyXMLDoc.CreateElement("keyname");//键码
MyKeyName.InnerText = this.numKey.Value.ToString();
MyNewKey.AppendChild(MyKeyName);
XmlElement MyMusicSource = MyXMLDoc.CreateElement("musicsource");//音源
MyMusicSource.InnerText = this.comMusic.Text;
MyNewKey.AppendChild(MyMusicSource);
XmlElement MyPlayWay = MyXMLDoc.CreateElement("musicaddr");//音源地址
MyPlayWay.InnerText = this.numAddr.Value.ToString();
MyNewKey.AppendChild(MyPlayWay);
XmlElement MyMusicAddr = MyXMLDoc.CreateElement("playway");//播放方式
MyMusicAddr.InnerText = this.comPlayWay.Text;
MyNewKey.AppendChild(MyMusicAddr);
MyXMLDoc.DocumentElement.AppendChild(MyNewKey);
//插入节点
XmlTextWriter MyWriter = new XmlTextWriter(Application .StartupPath + "/XML_6243.xml", null);
MyWriter.Formatting = Formatting.Indented;
MyXMLDoc.WriteContentTo(MyWriter);
MyWriter.Close();
}
catch (Exception ex)
...{
MessageBox.Show(ex.Message);
}
this.int_6243();
}
else
MessageBox.Show("信息没有填写完整,请检查!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
... {
if (this.numAddr.Value != 0 && this.comMusic.Text != "" && this.numKey.Value != 0 && this.comPlayWay.Text != "")
...{
XmlDocument MyXMLDoc = new XmlDocument();
MyXMLDoc.Load(Application .StartupPath + "/XML_6243.xml");
try
...{
string myfind = this.numKey.Value.ToString();
string myfindstring = "keys/key [keyname=" + '"' + myfind + '"' + "]";
XmlNode MyNode = MyXMLDoc.SelectSingleNode(myfindstring);
if (MyNode != null)
...{
MyXMLDoc.DocumentElement.RemoveChild(MyNode);//检查节点是否已经存在,存在的话则删除
}
XmlElement MyNewKey = MyXMLDoc.CreateElement("key");//新建节点
XmlElement MyKeyName = MyXMLDoc.CreateElement("keyname");//键码
MyKeyName.InnerText = this.numKey.Value.ToString();
MyNewKey.AppendChild(MyKeyName);
XmlElement MyMusicSource = MyXMLDoc.CreateElement("musicsource");//音源
MyMusicSource.InnerText = this.comMusic.Text;
MyNewKey.AppendChild(MyMusicSource);
XmlElement MyPlayWay = MyXMLDoc.CreateElement("musicaddr");//音源地址
MyPlayWay.InnerText = this.numAddr.Value.ToString();
MyNewKey.AppendChild(MyPlayWay);
XmlElement MyMusicAddr = MyXMLDoc.CreateElement("playway");//播放方式
MyMusicAddr.InnerText = this.comPlayWay.Text;
MyNewKey.AppendChild(MyMusicAddr);
MyXMLDoc.DocumentElement.AppendChild(MyNewKey);
//插入节点
XmlTextWriter MyWriter = new XmlTextWriter(Application .StartupPath + "/XML_6243.xml", null);
MyWriter.Formatting = Formatting.Indented;
MyXMLDoc.WriteContentTo(MyWriter);
MyWriter.Close();
}
catch (Exception ex)
...{
MessageBox.Show(ex.Message);
}
this.int_6243();
}
else
MessageBox.Show("信息没有填写完整,请检查!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
删除XML节点:
void
menu_Click(
object
sender, EventArgs e)
... {
//throw new Exception("The method or operation is not implemented.");
try
...{
string strvalue = this.list_6243.SelectedItems[0].SubItems[0].Text;
XmlDocument MyXMLDoc = new XmlDocument();
MyXMLDoc.Load(Application .StartupPath + "/XML_6243.xml");
string strPath = "keys/key [keyname=" + '"' + strvalue + '"' + "]";
XmlNode node = MyXMLDoc.SelectSingleNode(strPath);
if (node != null)
...{
MyXMLDoc.DocumentElement.RemoveChild(node);
/**//* XmlTextWriter MyWriter = new XmlTextWriter(Application .StartupPath + "/XML_6243.xml", null);
MyWriter.Formatting = Formatting.Indented;
MyXMLDoc.WriteContentTo(MyWriter);
MyWriter.Close();*/
MyXMLDoc.Save(Application .StartupPath + "/XML_6243.xml");
}
MessageBox.Show("键码"+strvalue +"删除成功!","提示",MessageBoxButtons.OK ,MessageBoxIcon .Information );
int_6243();
}
catch (Exception ex)
...{
MessageBox.Show(ex.Message);
}
}
... {
//throw new Exception("The method or operation is not implemented.");
try
...{
string strvalue = this.list_6243.SelectedItems[0].SubItems[0].Text;
XmlDocument MyXMLDoc = new XmlDocument();
MyXMLDoc.Load(Application .StartupPath + "/XML_6243.xml");
string strPath = "keys/key [keyname=" + '"' + strvalue + '"' + "]";
XmlNode node = MyXMLDoc.SelectSingleNode(strPath);
if (node != null)
...{
MyXMLDoc.DocumentElement.RemoveChild(node);
/**//* XmlTextWriter MyWriter = new XmlTextWriter(Application .StartupPath + "/XML_6243.xml", null);
MyWriter.Formatting = Formatting.Indented;
MyXMLDoc.WriteContentTo(MyWriter);
MyWriter.Close();*/
MyXMLDoc.Save(Application .StartupPath + "/XML_6243.xml");
}
MessageBox.Show("键码"+strvalue +"删除成功!","提示",MessageBoxButtons.OK ,MessageBoxIcon .Information );
int_6243();
}
catch (Exception ex)
...{
MessageBox.Show(ex.Message);
}
}