.NET MVC 中 Xml的创建读取操作
电脑版发表于:2019/11/28 17:33
在.net mvc中,想要进行读取xml的操作需要以下步骤:
Xml用途:配置、传输、储存。
1,先要导入命名空间:如下图:

2,我们需要创建生成一个Xml文件,先在试图下创建一个Xml的文件夹来生成文件,代码如下:
public ActionResult Index()
{
XElement root = new XElement("configuration");
XElement bookarray = new XElement("books");
root.Add(bookarray);
//生成一个Xml文件
root.Save(Server.MapPath("~/Views/Xml/book.xml"));
return View();
}3,我们需要给xml文件添加数据,以作显示读取之用.
一,封装一个添加数据的方法
public void addbook(XElement bookarray, string _bsid, string _bookName, string _bookDesc)
{
XElement book = new XElement("book");
book.SetAttributeValue("bsid", _bsid);
XElement bookName = new XElement("bookName");
bookName.Value = _bookName;
book.Add(bookName);
XElement bookDesc = new XElement("bookDesc");
bookDesc.Value = _bookDesc;
book.Add(bookDesc);
bookarray.Add(book);
}二,在创建的xml文件里添加数据,代码如下:
public ActionResult Index()
{
XElement root = new XElement("configuration");
XElement bookarray = new XElement("books");
root.Add(bookarray);
addbook(bookarray, "ba001", "侠盗飞车", "专偷车的故事");
addbook(bookarray, "ba002", "盗墓笔记", "专盗墓的故事");
addbook(bookarray, "ba003", "天才枪手", "专偷东西的故事");
//生成一个Xml文件
root.Save(Server.MapPath("~/Views/Xml/book.xml"));
return View();
}可以在创建的Xml文件夹里查看生成的数据,如下

4,最后一步就是读取操作了,代码如下:
//在xml进行读取操作
public ActionResult Read()
{
//读取配置的Web.config文件
//XElement config = XElement.Load(Server.MapPath("~/Web.config"));
//string conn = config.Element("connectionStrings").Element("add").Attribute("connectionString").Value;
//加载xml
XElement root = XElement.Load(Server.MapPath("~/Views/Xml/book.xml"));
List<string> bookNamelist = new List<string>(); //Element:子集元素
List<string> bookidlist = new List<string>(); //Element:子集元素
foreach (var item in root.Element("books").Elements("book"))
{
string bookName = item.Element("bookName").Value;
//string bookDesc = item.Element("bookDesc").Value;
bookNamelist.Add(bookName);
bookidlist.Add(item.Attribute("bsid").Value);
}
ViewBag.bookidlist = bookidlist;
return View(bookNamelist);
}

5,为了完善效果,我们还可以在显示目录的同时点击显示详情,所以需要封装一个详情方法
//封装详情的方法
public void BookDetails(string bsid)
{
//加载xml
XElement root = XElement.Load(Server.MapPath("~/Views/Xml/book.xml"));
XElement book = root.Element("books").Elements("book").Where(a => a.Attribute("bsid").Value == bsid).FirstOrDefault();
Response.Write("编号:" + bsid +"<br/>");
Response.Write("书名:" + book.Element("bookName").Value + "<br/>");
Response.Write("描述:" + book.Element("bookDesc").Value + "<br/>");
}试图绑定数据代码如下:
@{
ViewBag.Title = "Read";
}
@model List<string>
@{
List<string> idNameList = ViewBag.bookidlist as List<string>;
}
<div style="margin-top:30px;">
<ul style="list-style-type:none;font-size:25px;">
@for (int i = 0; i < idNameList.Count; i++)
{
<li style="float:left;margin-left:15px;"><a href="/xml/BookDetails?bsid=@idNameList[i]">@Model[i]</a></li>
}
</ul>
</div>点击效果如下:

好了,对于Xml的创建,读取操作就到这里啦,喜欢的朋友可以收藏哦.
