


C# sample code sharing to implement the addition, deletion, modification and query function of XML documents
This article mainly introduces the C# implementation of the addition, deletion, modification and query functions of XML documents. It analyzes the creation of xml documents and C#'s loading, addition, deletion and modification of xml documents in the form of examples. For operational skills such as checking, friends who need it can refer to
. This article describes how C# implements the add, delete, modify, and check functions of XML documents. Share it with everyone for your reference, the details are as follows:
1. Create an instance XML file (Books.xml)
<?xml version="1.0" encoding="iso-8859-1"?> <bookstore> <book id="1" category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book id="2" category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book id="3" category="WEB"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book> <book id="4" category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
2. Create a book information entity class (BookInfo.cs)
public class BookInfo { /// <summary> /// 图书ID /// </summary> public int BookId { set; get; } /// <summary> /// 图书名称 /// </summary> public string Title { set; get; } /// <summary> /// 图书分类 /// </summary> public string Category { set; get; } /// <summary> /// 图书语言 /// </summary> public string Language { set; get; } /// <summary> /// 图书作者 /// </summary> public string Author { set; get; } /// <summary> /// 出版时间 /// </summary> public string Year { set; get; } /// <summary> /// 销售价格 /// </summary> public decimal Price { set; get; } }
3. Create book information business logic class (BookInfoBLL.cs)
using System.Xml; //引用相关文件 public class BookInfoBLL { private string _basePath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"/xml/Books.xml"; //XML文件路径 private XmlDocument _booksXmlDoc = null; //创建XML文档对象 public BookInfoBLL() { try { _booksXmlDoc = new XmlDocument(); //初始化XML文档对象 _booksXmlDoc.Load(_basePath); //加载指定的XML文档 } catch (Exception ex) { throw new Exception("加载XML文档出错:" + ex.Message); } } /// <summary> /// 获取图书列表(查) /// </summary> /// <param name="param">参数条件</param> /// <returns>图书列表</returns> public List<BookInfo> GetBookInfoList(BookInfo param) { List<BookInfo> bookInfoList = new List<BookInfo>(); string xPath = "bookstore/book"; //默认获取所有图书 if (param.BookId != 0) //根据图书ID查询 { xPath = String.Format("/bookstore/book[@id='{0}']", param.BookId); } else if (!String.IsNullOrEmpty(param.Category)) //根据图书类别查询 { xPath = String.Format("/bookstore/book[@category='{0}']", param.Category); } else if (!String.IsNullOrEmpty(param.Title)) //根据图书名称查询 { xPath = String.Format("/bookstore/book[title='{0}']", param.Title); } XmlNodeList booksXmlNodeList = _booksXmlDoc.SelectNodes(xPath); foreach (XmlNode bookNode in booksXmlNodeList) { BookInfo bookInfo = new BookInfo(); bookInfo.BookId = Convert.ToInt32(bookNode.Attributes["id"].Value); //获取属性值 bookInfo.Category = bookNode.Attributes["category"].Value; bookInfo.Language = bookNode.SelectSingleNode("title").Attributes["lang"].Value; //获取子节点的属性值 bookInfo.Title = bookNode.SelectSingleNode("title").InnerText; //获取元素值 bookInfo.Author = bookNode.SelectSingleNode("author").InnerText; bookInfo.Year = bookNode.SelectSingleNode("year").InnerText; bookInfo.Price = Convert.ToDecimal(bookNode.SelectSingleNode("price").InnerText); bookInfoList.Add(bookInfo); } return bookInfoList; } /// <summary> /// 增加图书信息(增) /// </summary> /// <param name="param"></param> /// <returns></returns> public bool AddBookInfo(BookInfo param) { bool result = false; XmlNode root = _booksXmlDoc.SelectSingleNode("bookstore"); //查找<bookstore> //创建节点 XmlElement bookXmlElement = _booksXmlDoc.CreateElement("book"); XmlElement titleXmlElement = _booksXmlDoc.CreateElement("title"); XmlElement authorXmlElement = _booksXmlDoc.CreateElement("author"); XmlElement yearXmlElement = _booksXmlDoc.CreateElement("year"); XmlElement priceXmlElement = _booksXmlDoc.CreateElement("price"); //给节点赋值 bookXmlElement.SetAttribute("id", param.BookId.ToString()); bookXmlElement.SetAttribute("category", param.Category); titleXmlElement.InnerText = param.Title; //给节点添加元素值 titleXmlElement.SetAttribute("lang", param.Language);//给节点添加属性值 authorXmlElement.InnerText = param.Author; yearXmlElement.InnerText = param.Year; priceXmlElement.InnerText = param.Price.ToString(); //AppendChild 将指定的节点添加到该节点的子节点列表的末尾 bookXmlElement.AppendChild(titleXmlElement); bookXmlElement.AppendChild(authorXmlElement); bookXmlElement.AppendChild(yearXmlElement); bookXmlElement.AppendChild(priceXmlElement); root.AppendChild(bookXmlElement); _booksXmlDoc.Save(_basePath); result = true; return result; } /// <summary> /// 修改图书信息(改) /// </summary> /// <param name="param"></param> /// <returns></returns> public bool EditBookInfo(BookInfo param) { bool result = false; if(param.BookId>0) { string xPath = String.Format("/bookstore/book[@id='{0}']", param.BookId); XmlNode editXmlNode = _booksXmlDoc.SelectSingleNode(xPath); XmlElement editXmlElement = (XmlElement)editXmlNode; if (editXmlElement != null) { editXmlElement.Attributes["category"].Value = param.Category; editXmlElement.SelectSingleNode("title").Attributes["lang"].Value = param.Language; editXmlElement.SelectSingleNode("title").InnerText = param.Title; editXmlElement.SelectSingleNode("author").InnerText = param.Author; editXmlElement.SelectSingleNode("year").InnerText = param.Year; editXmlElement.SelectSingleNode("price").InnerText = param.Price.ToString(); _booksXmlDoc.Save(_basePath); result = true; } } return result; } /// <summary> /// 删除图书信息(删) /// </summary> /// <param name="param"></param> /// <returns></returns> public bool DeleteBookInfo(BookInfo param) { bool result = false; if (param.BookId > 0) { string xPath = String.Format("/bookstore/book[@id='{0}']", param.BookId); XmlNode delXmlNode = _booksXmlDoc.SelectSingleNode(xPath); if (delXmlNode != null) { _booksXmlDoc.SelectSingleNode("bookstore").RemoveChild(delXmlNode); //移除指定的子节点 _booksXmlDoc.Save(_basePath); result = true; } } return result; } }
The above is the detailed content of C# sample code sharing to implement the addition, deletion, modification and query function of XML documents. For more information, please follow other related articles on the PHP Chinese website!

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

C# and .NET adapt to the needs of emerging technologies through continuous updates and optimizations. 1) C# 9.0 and .NET5 introduce record type and performance optimization. 2) .NETCore enhances cloud native and containerized support. 3) ASP.NETCore integrates with modern web technologies. 4) ML.NET supports machine learning and artificial intelligence. 5) Asynchronous programming and best practices improve performance.

C#.NETissuitableforenterprise-levelapplicationswithintheMicrosoftecosystemduetoitsstrongtyping,richlibraries,androbustperformance.However,itmaynotbeidealforcross-platformdevelopmentorwhenrawspeediscritical,wherelanguageslikeRustorGomightbepreferable.

The programming process of C# in .NET includes the following steps: 1) writing C# code, 2) compiling into an intermediate language (IL), and 3) executing by the .NET runtime (CLR). The advantages of C# in .NET are its modern syntax, powerful type system and tight integration with the .NET framework, suitable for various development scenarios from desktop applications to web services.

C# is a modern, object-oriented programming language developed by Microsoft and as part of the .NET framework. 1.C# supports object-oriented programming (OOP), including encapsulation, inheritance and polymorphism. 2. Asynchronous programming in C# is implemented through async and await keywords to improve application responsiveness. 3. Use LINQ to process data collections concisely. 4. Common errors include null reference exceptions and index out-of-range exceptions. Debugging skills include using a debugger and exception handling. 5. Performance optimization includes using StringBuilder and avoiding unnecessary packing and unboxing.

Testing strategies for C#.NET applications include unit testing, integration testing, and end-to-end testing. 1. Unit testing ensures that the minimum unit of the code works independently, using the MSTest, NUnit or xUnit framework. 2. Integrated tests verify the functions of multiple units combined, commonly used simulated data and external services. 3. End-to-end testing simulates the user's complete operation process, and Selenium is usually used for automated testing.

Interview with C# senior developer requires mastering core knowledge such as asynchronous programming, LINQ, and internal working principles of .NET frameworks. 1. Asynchronous programming simplifies operations through async and await to improve application responsiveness. 2.LINQ operates data in SQL style and pay attention to performance. 3. The CLR of the NET framework manages memory, and garbage collection needs to be used with caution.

C#.NET interview questions and answers include basic knowledge, core concepts, and advanced usage. 1) Basic knowledge: C# is an object-oriented language developed by Microsoft and is mainly used in the .NET framework. 2) Core concepts: Delegation and events allow dynamic binding methods, and LINQ provides powerful query functions. 3) Advanced usage: Asynchronous programming improves responsiveness, and expression trees are used for dynamic code construction.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

Dreamweaver Mac version
Visual web development tools

Atom editor mac version download
The most popular open source editor