XMLDocument对xml文件的增删改查操作精.docx

上传人:b****7 文档编号:25235811 上传时间:2023-06-06 格式:DOCX 页数:24 大小:19.17KB
下载 相关 举报
XMLDocument对xml文件的增删改查操作精.docx_第1页
第1页 / 共24页
XMLDocument对xml文件的增删改查操作精.docx_第2页
第2页 / 共24页
XMLDocument对xml文件的增删改查操作精.docx_第3页
第3页 / 共24页
XMLDocument对xml文件的增删改查操作精.docx_第4页
第4页 / 共24页
XMLDocument对xml文件的增删改查操作精.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

XMLDocument对xml文件的增删改查操作精.docx

《XMLDocument对xml文件的增删改查操作精.docx》由会员分享,可在线阅读,更多相关《XMLDocument对xml文件的增删改查操作精.docx(24页珍藏版)》请在冰豆网上搜索。

XMLDocument对xml文件的增删改查操作精.docx

XMLDocument对xml文件的增删改查操作精

从结构上讲.XmlElement是XmlNode派生类.所以两者比较没什么意义.

XmlNode为抽像类,不能直接实例化.

已知有一个xml文件(bookstore.xml)如下:

Corets,Eva

5.95

1、往节点中插入一个节点:

XmlDocumentxmlDoc=newXmlDocument(;

xmlDoc.Load("bookstore.xml";

XmlNoderoot=xmlDoc.SelectSingleNode("bookstore";//查找

XmlElementxe1=xmlDoc.CreateElement("book";//创建一个节点

xe1.SetAttribute("genre","李赞红";//设置该节点genre属性

xe1.SetAttribute("ISBN","2-3631-4";//设置该节点ISBN属性

XmlElementxesub1=xmlDoc.CreateElement("title";

xesub1.InnerText="CS从入门到精通";//设置文本节点

xe1.AppendChild(xesub1;//添加到节点中

XmlElementxesub2=xmlDoc.CreateElement("author";

xesub2.InnerText="候捷";

xe1.AppendChild(xesub2;

XmlElementxesub3=xmlDoc.CreateElement("price";

xesub3.InnerText="58.3";

xe1.AppendChild(xesub3;

root.AppendChild(xe1;//添加到节点中

xmlDoc.Save("bookstore.xml";

//===============================================

结果为:

Corets,Eva

5.95

李赞红"ISBN="2-3631-4">

候捷

58.3

2、修改节点:

将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点的文本修改为“亚胜”。

XmlNodeListnodeList=xmlDoc.SelectSingleNode("bookstore".ChildNodes;//获取bookstore节点的所有子节点

foreach(XmlNodexninnodeList//遍历所有子节点

{

XmlElementxe=(XmlElementxn;//将子节点类型转换为XmlElement类型

if(xe.GetAttribute("genre"=="李赞红"//如果genre属性值为“李赞红”

{

xe.SetAttribute("genre","update李赞红";//则修改该属性为“update李赞红”

XmlNodeListnls=xe.ChildNodes;//继续获取xe子节点的所有子节点

foreach(XmlNodexn1innls//遍历

{

XmlElementxe2=(XmlElementxn1;//转换类型

if(xe2.Name=="author"//如果找到

{

xe2.InnerText="亚胜";//则修改

break;//找到退出来就可以了

}

}

break;

}

}

xmlDoc.Save("bookstore.xml";//保存。

//==================================================

最后结果为:

Corets,Eva

5.95

李赞红"ISBN="2-3631-4">

亚胜

58.3

3、删除节点的genre属性,删除李赞红"ISBN="2-3631-4">节点。

XmlNodeListxnl=xmlDoc.SelectSingleNode("bookstore".ChildNodes;

foreach(XmlNodexninxnl

{

XmlElementxe=(XmlElementxn;

if(xe.GetAttribute("genre"=="fantasy"

{

xe.RemoveAttribute("genre";//删除genre属性

}

elseif(xe.GetAttribute("genre"=="update李赞红"

{

xe.RemoveAll(;//删除该节点的全部内容

}

}

xmlDoc.Save("bookstore.xml";

//===========================================

最后结果为:

Corets,Eva

5.95

4、显示所有数据。

XmlNodexn=xmlDoc.SelectSingleNode("bookstore";

XmlNodeListxnl=xn.ChildNodes;

foreach(XmlNodexnfinxnl

{

XmlElementxe=(XmlElementxnf;

Console.WriteLine(xe.GetAttribute("genre";//显示属性值

Console.WriteLine(xe.GetAttribute("ISBN";

XmlNodeListxnf1=xe.ChildNodes;

foreach(XmlNodexn2inxnf1

{

Console.WriteLine(xn2.InnerText;//显示子节点点文本

}

}

1.已知有一个xml文件(bookstore.xml)如下:

 

 

   

   Corets,Eva

   5.95

 

 

 

 

 1、往节点中插入一个节点:

 

   XmlDocumentxmlDoc=newXmlDocument(;

  xmlDoc.Load("bookstore.xml";

  XmlNoderoot=xmlDoc.SelectSingleNode("bookstore";//查找

  XmlElementxe1=xmlDoc.CreateElement("book";//创建一个节点

  xe1.SetAttribute("genre","李赞红";//设置该节点genre属性

  xe1.SetAttribute("ISBN","2-3631-4";//设置该节点ISBN属性

 

  XmlElementxesub1=xmlDoc.CreateElement("title";

  xesub1.InnerText="CS从入门到精通";//设置文本节点

  xe1.AppendChild(xesub1;//添加到节点中

  XmlElementxesub2=xmlDoc.CreateElement("author";

  xesub2.InnerText="候捷";

  xe1.AppendChild(xesub2;

  XmlElementxesub3=xmlDoc.CreateElement("price";

  xesub3.InnerText="58.3";

  xe1.AppendChild(xesub3;

 

  root.AppendChild(xe1;//添加到节点中

  xmlDoc.Save("bookstore.xml";

 

 

 //================

 结果为:

 

 

 

   

   Corets,Eva

   5.95

 

 李赞红"ISBN="2-3631-4">

   

   候捷

   58.3

 

 

 

2、修改节点:

将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点的文本修改为“亚胜”。

    XmlNodeListnodeList=xmlDoc.SelectSingleNode("bookstore".ChildNodes;//获取bookstore节点的所有子节点

  foreach(XmlNodexninnodeList//遍历所有子节点

  {

   XmlElementxe=(XmlElementxn;//将子节点类型转换为XmlElement类型

   if(xe.GetAttribute("genre"=="李赞红"//如果genre属性值为“李赞红”

   {

    xe.SetAttribute("genre","update李赞红";//则修改该属性为“update李赞红”

 

    XmlNodeListnls=xe.ChildNodes;//继续获取xe子节点的所有子节点

    foreach(XmlNodexn1innls//遍历

    {

     XmlElementxe2=(XmlElementxn1;//转换类型

     if(xe2.Name=="author"//如果找到

     {

      xe2.InnerText="亚胜";//则修改

      break;//找到退出来就可以了

     }

    }

    break;

   }

  }

 

  xmlDoc.Save("bookstore.xml";//保存。

 

 //=================

 最后结果为:

 

 

   

   Corets,Eva

   5.95

 

 李赞红"ISBN="2-3631-4">

   

   亚胜

   58.3

 

 

 

 3、删除节点的genre属性,删除李赞红"ISBN="2-3631-4">节点。

 XmlNodeListxnl=xmlDoc.SelectSingleNode("bookstore".ChildNodes;

 

  foreach(XmlNodexninxnl

  {

   XmlElementxe=(XmlElementxn;

 

 

 

 

 

    if(xe.GetAttribute("genre"=="fantasy"

   {

    xe.RemoveAttribute("genre";//删除genre属性

   }

   elseif(xe.GetAttribute("genre"=="update李赞红"

   {

    xe.RemoveAll(;//删除该节点的全部内容

   }

  }

  xmlDoc.Save("bookstore.xml";

 

 //====================

  

 最后结果为:

 

 

   

   Corets,Eva

   5.95

 

 

 

 4、显示所有数据。

 XmlNodexn=xmlDoc.SelectSingleNode("bookstore";

 

  XmlNodeListxnl=xn.ChildNodes;

   

  foreach(XmlNodexnfinxnl

  {

   XmlElementxe=(XmlElementxnf;

   Console.WriteLine(xe.GetAttribute("genre";//显示属性值

   Console.WriteLine(xe.GetAttribute("ISBN";

 

   XmlNodeListxnf1=xe.ChildNodes;

   foreach(XmlNodexn2inxnf1

   {

    Console.WriteLine(xn2.InnerText;//显示子节点点文本

   }

  } 

1.private void btnLoad_Click(object sender, EventArgs e  

2.        {  

3.            XmlDocument xmlDoc = new XmlDocument(;  

4.            xmlDoc.Load("Books.xml";  

5.            MessageBox.Show(xmlDoc.InnerXml;  

6.        }  

7.  

8.        private void btnCreate_Click(object sender, EventArgs e  

9.        {  

10.            //xml文档  

11.            XmlDocument xmlDoc = new XmlDocument(;  

12.            XmlDeclaration dec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null;  

13.            xmlDoc.AppendChild(dec;  

14.  

15.            //创建根节点   

16.            XmlElement root = xmlDoc.CreateElement("Books";  

17.            xmlDoc.AppendChild(root;  

18.  

19.            //节点及元素  

20.            XmlNode book = xmlDoc.CreateElement("Book";  

21.            XmlElement title = GetXmlElement(xmlDoc, "Title", "Window Form";  

22.            XmlElement isbn = GetXmlElement(xmlDoc, "ISBN", "111111";  

23.            XmlElement author = GetXmlElement(xmlDoc, "Author", "amandag";  

24.            XmlElement price = GetXmlElement(xmlDoc, "Price", "128.00";  

25.            price.SetAttribute("Unit", "¥";  

26.  

27.            book.AppendChild(title;  

28.            book.AppendChild(isbn;  

29.            book.AppendChild(author;  

30.            book.AppendChild(price;  

31.            root.AppendChild(book;  

32.  

33.            xmlDoc.Save("Books.xml";  

34.            MessageBox.Show("数据已写入!

";  

35.        }  

36.  

37.        private void btnInsert_Click(object sender, EventArgs e  

38.        {  

39.            XmlDocument xmlDoc = new XmlDocument(;  

40.            xmlDoc.Load("Books.xml";  

41.  

42.            XmlNode root = xmlDoc.SelectSingleNode("Books";  

43.  

44.            XmlElement book = xmlDoc.CreateElement("Book";  

45.            XmlElement title = GetXmlElement(xmlDoc, "Title", "ASP.NET";  

46.            XmlElement isbn = GetXmlElement(xmlDoc, "ISBN", "222222";  

47.            XmlElement author = GetXmlElement(xmlDoc, "Author", "moon";  

48.            XmlElement price = GetXmlElement(xmlDoc, "Price", "111.00";  

49.            price.SetAttribute("Unit", "{1}quot;;  

50.  

51.            book.AppendChild(title;  

52.            book.AppendChild(isbn;  

53.            book.AppendChild(author;  

54.            book.AppendChild(price;  

55.            root.AppendChild(book;  

56.  

57.            xmlDoc.Save("Books.xml";  

58.            MessageBox.Show("数据已插入!

";  

59.        }  

60.  

61.        private void btnUpdate_Click(object sender, EventArgs e  

62.        {  

63.            XmlDocument xmlDoc = new XmlDocument(;  

64.            xmlDoc.Load("Books.xml";  

65.  

66.            //方法1:

获取Books//Book节点的第一个子节点   

67.            XmlNodeList nodeList = xmlDoc.SelectSingleNode("Books//Book".ChildNodes;  

68.            XmlElement xe = null;  

69.            //遍历所有子节点   

70.            foreach (XmlNode xn in nodeList  

71.            {  

72.                //将子节点类型转换为XmlElement类型   

73.                xe = (XmlElementxn;  

74.                if (xe.Name == "Author" && xe.InnerText == "amandag"  

75.                {  

76.                    xe.InnerText = "高歌";  

77.                }  

78.  

79.                if (xe.GetAttribute("Unit" == "¥"  

80.                {  

81.                    xe.SetAttribute("Unit", "{1}quot;;  

82.                }  

83.            }  

84.  

85.            //方法2:

  

86.            XmlNode node = xmlDoc.SelectSingleNode("Books//Book[Author=\"moon\"]//Author";  

87.            if(node !

= null  

88.            {  

89.                node.InnerText = "宝贝";  

90.            }  

91.      

92.            xmlDoc.Save("Books.xml";  

93.            MessageBox.Show("数据已更新!

";  

94.        }  

95.  

96.        private void btnDelete_Click(object sender, EventArgs e  

97.        {  

98.            XmlDocument xmlDoc = new XmlDocument(;  

99.            xmlDoc.Load("Books.xml";  

100.  

101.            XmlNodeList nodeList = xmlDoc

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1