文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C#如何实现数据访问XML

2023-06-17 23:36

关注

这篇文章给大家分享的是有关C#如何实现数据访问XML的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在举C#数据访问XML的例子之前,首先介绍一些知识和定义。

XML DOM的类所在的命名空间为System.Xml中

XmlNode 表示文档中的节点,如果这个节点表示XML的文档的根,就可以从它导航到文档的任意位置

XmlDocument 常常作为使用XML的***个对象,这个类用于加载和保存磁盘上或者其他位置的数据

XmlElement 表示XML文档中的一个元素,派生于XmlLinkedNode,XmlLinkedNode派生于XmlNode

XmlAttribute 表示XMl的一个属性

XmlText 表示开标记和闭标记之间的文本内容

XmlComment 表示一种特殊类型的节点,这种节点不是文档的一部分,但是为读者提供部分信息,通常是注释

XmlNodeList 表示一个节点集合

C#数据访问XML示例:

XmlDocument document = new XmlDocument();

document.Loda(@"C:\Test\books.xml");

XmlElement element = document.DocumentElement;//返回一个XmlElement实例

示例1:

//创建一个节点  private void buttonCreateNode_Click(object sender, EventArgs e)          {              // Load the XML document              XmlDocument document = new XmlDocument();              document.Load("../../Books.xml");                // Get the root element              XmlElement root = document.DocumentElement;                // Create the new nodes              XmlElement newBook = document.CreateElement("book");              XmlElement newTitle = document.CreateElement("title");              XmlElement newAuthor = document.CreateElement("author");              XmlElement newCode = document.CreateElement("code");              XmlText title = document.CreateTextNode("Beginning Visual C# 3rd Edition");              XmlText author = document.CreateTextNode("Karli Watson et al");              XmlText code = document.CreateTextNode("1234567890");              XmlComment comment = document.CreateComment("This book is the book you are reading");                // Insert the elements              newBook.AppendChild(comment);              newBook.AppendChild(newTitle);              newBook.AppendChild(newAuthor);              newBook.AppendChild(newCode);              newTitle.AppendChild(title);              newAuthor.AppendChild(author);              newCode.AppendChild(code);              root.InsertAfter(newBook, root.LastChild);                document.Save("../../Books.xml");                listBoxXmlNodes.Items.Clear();              RecurseXmlDocument((XmlNode)document.DocumentElement, 0);          }  //删除一个节点  private void buttonDeleteNode_Click(object sender, EventArgs e)          {              // Load the XML document              XmlDocument document = new XmlDocument();              document.Load("../../Books.xml");                // Get the root element              XmlElement root = document.DocumentElement;                // Find the node. root is the < books> tag, so its last child which will be the              // last < book> node              if (root.HasChildNodes)              {                  XmlNode book = root.LastChild;                    // Delete the child                  root.RemoveChild(book);                    // Save the document back to disk                  document.Save("../../Books.xml");                  listBoxXmlNodes.Items.Clear();                    RecurseXmlDocument((XmlNode)document.DocumentElement, 0);              }          }  //在一个ListBox中显示文档的所有节点名称以及文本节点的内容  private void RecurseXmlDocument(XmlNode root, int indent)      {        // Make sure we don't do anything if the root is null        if (root == null)          return;          if (root is XmlElement) // Root is an XmlElement type        {          // first, print the name          listBoxXmlNodes.Items.Add(root.Name.PadLeft(root.Name.Length + indent));            // Then check if there are any child nodes and if there are, call this          // method again to print them          if (root.HasChildNodes)            RecurseXmlDocument(root.FirstChild, indent + 2);            // Finally check to see if there are any siblings and if there are          // call this method again to have them printed          if (root.NextSibling != null)            RecurseXmlDocument(root.NextSibling, indent);        }        else if (root is XmlText)        {          // Print the text          string text = ((XmlText)root).Value;          listBoxXmlNodes.Items.Add(text.PadLeft(text.Length + indent));        }        else if (root is XmlComment)        {          // Print text          string text = root.Value;          listBoxXmlNodes.Items.Add(text.PadLeft(text.Length + indent));            // Then check if there are any child nodes and if there are, call this          // method again to print them          if (root.HasChildNodes)            RecurseXmlDocument(root.FirstChild, indent + 2);            // Finally check to see if there are any siblings and if there are          // call this method again to have them printed          if (root.NextSibling != null)            RecurseXmlDocument(root.NextSibling, indent);        }      }  //XPath选择一个节点  //XPath语法相关参考http://www.w3school.com.cn/xpath/xpath_syntax.asp  private void buttonQueryNode_Click(object sender, EventArgs e)          {              // Load the XML document              XmlDocument document = new XmlDocument();              document.Load(@filePath);                // Get the root element              XmlElement root = document.DocumentElement;                string queryStr = textBoxQueryText.Text;                XmlNodeList nodeList = root.SelectNodes(queryStr);              listBoxXmlNodes.Items.Clear();                foreach (XmlNode n in nodeList)              {                  RecurseXmlDocument(n, 0);              }          }

感谢各位的阅读!关于“C#如何实现数据访问XML”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯