使用LINQ TO XML 创建xml文档,以及读取xml文档把内容显示到GridView例子

时间:2021-07-11 22:35:30
使用LINQ TO XML 创建xml文档,以及读取xml文档把内容显示到GridView例子

首先,准备了一个Model类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace XML
{
public class bookModel
{
public string bookType { get; set; }
public string bookISBN { get; set; }
public string bookName { get; set; }
public string bookAuthor { get; set; }
public double bookPrice { get; set; }
}
}

实体类

这个是创建xml文档的方法

/// <summary>
/// 使用LINQ To Xml 创建xml文档
/// </summary>
/// <param name="fileName">文件名</param>
private void CreateXML(string fileName)
{
var xdoc = new XDocument(
new XElement("bookstore", //根节点
new XElement("book", //子节点
new XAttribute("Type", "必修课") //子节点属性
, new XAttribute("ISBN", "1.00.0001") //子节点下的内容
, new XElement("title", "语文")
, new XElement("author", "张三")
, new XElement("price", "100.00")
)
,
new XElement("book",
new XAttribute("Type", "必修课")
, new XAttribute("ISBN", "1.00.0002")
, new XElement("title", "数学")
, new XElement("author", "李四")
, new XElement("price", "50.00")
)
,
new XElement("book",
new XAttribute("Type", "必修课")
, new XAttribute("ISBN", "1.00.0003")
, new XElement("title", "英语")
, new XElement("author", "王五")
, new XElement("price", "25.00")
)
,
new XElement("book",
new XAttribute("Type", "必修课")
, new XAttribute("ISBN", "1.00.0004")
, new XElement("title", "c语言")
, new XElement("author", "某某")
, new XElement("price", "1000")
)
,
new XElement("book",
new XAttribute("Type", "必修课")
, new XAttribute("ISBN", "1.00.0005")
, new XElement("title", "算法设计与分析")
, new XElement("author", "问问")
, new XElement("price", "230.00")
)
,
new XElement("book",
new XAttribute("Type", "选修课")
, new XAttribute("ISBN", "1.00.0008")
, new XElement("title", "计算机操作系统")
, new XElement("author", "飞")
, new XElement("price", "500")
)
)
);
xdoc.Save(fileName); //文件创建(保存)在当前项目解决方案的DeBug下
}

  这个是读取xml文档以及把读取内容显示到Grid的方法

private void LoadData()
{
try
{
//加载文档并取得根节点
XElement root = XElement.Load("book.xml");
//取得根节点下所有名为book的子节点以及子节点下的内容
IEnumerable<XElement> targetNode = from target in root.Descendants("book") select target;
List<bookModel> lst = new List<bookModel>();
foreach (XElement node in targetNode)
{
//实例Model,给字段赋值
bookModel model = new bookModel();
model.bookType = node.Attribute("Type").Value.ToString();
model.bookISBN = node.Attribute("ISBN").Value.ToString();
model.bookName = node.Element("title").Value.ToString();
model.bookAuthor = node.Element("author").Value.ToString();
model.bookPrice = Convert.ToDouble(node.Element("price").Value);
lst.Add(model);
}
gdvBook.DataSource = lst; }
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

读取XML、显示Grid