ASP.NET提供了多种操作XML的方式,例如使用Linq to XML、XmlDocument等。下面分别介绍在ASP.NET中如何利用Linq to XML和XmlDocument进行XML的增删改查操作。
使用Linq to XML操作XML
1. 增加节点
可以通过添加元素来添加一个节点。示例代码如下:
XDocument xdoc = XDocument.Load("books.xml");
//创建新的book元素
XElement newBook = new XElement("book",
new XElement("title", "C#高级编程"),
new XElement("author", "朱江"),
new XElement("price", "88.00")
);
//将新元素添加到根元素下
xdoc.Root.Add(newBook);
//保存修改后的XML文档
xdoc.Save("books.xml");
2. 修改节点
可以通过查找到指定元素,然后修改其属性或文本信息来进行节点的修改。示例代码如下:
XDocument xdoc = XDocument.Load("books.xml");
//查找指定节点
XElement book = xdoc.Descendants("book")
.Where(b => b.Element("title").Value == "C#网络编程")
.SingleOrDefault();
//修改title元素的值
book.Element("title").SetValue("C#高级编程");
//保存修改后的XML文档
xdoc.Save("books.xml");
3. 删除节点
可以通过查找到指定元素,然后将其从父节点删除来进行节点的删除。示例代码如下:
XDocument xdoc = XDocument.Load("books.xml");
//查找指定节点
XElement book = xdoc.Descendants("book")
.Where(b => b.Element("title").Value == "C#高级编程")
.SingleOrDefault();
//将该节点从父节点删除
book.Remove();
//保存修改后的XML文档
xdoc.Save("books.xml");
4. 查询节点
可以使用Linq查询语句来查询节点。示例代码如下:
XDocument xdoc = XDocument.Load("books.xml");
//查询所有书籍
var books = from b in xdoc.Descendants("book")
select b;
//输出查询结果
foreach (XElement book in books)
{
Console.WriteLine("书名:{0},作者:{1},价格:{2}",
book.Element("title").Value,
book.Element("author").Value,
book.Element("price").Value);
}
使用XmlDocument操作XML
1. 增加节点
可以通过创建新的元素来添加一个节点。示例代码如下:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("books.xml");
//创建新的book元素
XmlElement bookElem = xmlDoc.CreateElement("book");
XmlElement titleElem = xmlDoc.CreateElement("title");
titleElem.InnerText = "C#高级编程";
XmlElement authorElem = xmlDoc.CreateElement("author");
authorElem.InnerText = "朱江";
XmlElement priceElem = xmlDoc.CreateElement("price");
priceElem.InnerText = "88.00";
//将子节点添加到book元素中
bookElem.AppendChild(titleElem);
bookElem.AppendChild(authorElem);
bookElem.AppendChild(priceElem);
//将book元素添加到根元素下
xmlDoc.DocumentElement.AppendChild(bookElem);
//保存修改后的XML文档
xmlDoc.Save("books.xml");
2. 修改节点
可以通过查找到指定元素,然后修改其属性或文本信息来进行节点的修改。示例代码如下:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("books.xml");
//查找指定节点
XmlNode bookNode = xmlDoc.SelectSingleNode("//book[title='C#网络编程']");
//获取title元素
XmlNode titleNode = bookNode.SelectSingleNode("title");
//修改title元素的值
titleNode.InnerText = "C#高级编程";
//保存修改后的XML文档
xmlDoc.Save("books.xml");
3. 删除节点
可以通过查找到指定元素,然后将其从父节点删除来进行节点的删除。示例代码如下:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("books.xml");
//查找指定节点
XmlNode bookNode = xmlDoc.SelectSingleNode("//book[title='C#高级编程']");
//将该节点从父节点删除
bookNode.ParentNode.RemoveChild(bookNode);
//保存修改后的XML文档
xmlDoc.Save("books.xml");
4. 查询节点
可以使用XPath查询语句来查询节点。示例代码如下:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("books.xml");
//查询所有书籍
XmlNodeList bookNodes = xmlDoc.SelectNodes("//book");
//输出查询结果
foreach (XmlNode bookNode in bookNodes)
{
Console.WriteLine("书名:{0},作者:{1},价格:{2}",
bookNode.SelectSingleNode("title").InnerText,
bookNode.SelectSingleNode("author").InnerText,
bookNode.SelectSingleNode("price").InnerText);
}
以上就是使用Linq to XML和XmlDocument进行XML的增删改查操作的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net中XML如何做增删改查操作 - Python技术站