ASPX 如何读取 AppData 目录下面的XML (C#实现)

来源:互联网 发布:php开源crm 编辑:程序博客网 时间:2024/04/28 18:28

XML中配置了一些学生基本信息。文件放在 App_Data 目录下面。文件名:Mytest.xml

<?xml version="1.0" encoding="utf-8"?><class>  <student>    <name>羞花猫</name>    <age>12</age>    <sex>男</sex>  </student>  <student>    <name>花儿</name>    <age>11</age>    <sex>女</sex>  </student>  <student>    <name>月亮</name>    <age>13</age>    <sex>女</sex>  </student></class>

现在想在aspx.cs 文件里面读取到这个XML,可以通过以下代码实现。

using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Xml;using System.Xml.XPath;using System.IO;namespace WebApplication1{    public partial class _Default : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            XmlDocument xmlDoc;            // 取得XML文件所在绝对路径            string filePath = HttpContext.Current.Request.MapPath("~/App_Data/Menu/MyTest.xml");            if (File.Exists(filePath))            {                xmlDoc = new XmlDocument();                // 读取文件                xmlDoc.Load(filePath);                // XPathNavigator生成                XPathNavigator xnavi = xmlDoc.CreateNavigator();                XPathNodeIterator xnitrFinds;                xnitrFinds = xnavi.Select("class/student");                if (xnitrFinds != null)                {                    XmlElement xeltFind;                    while (xnitrFinds.MoveNext())                    {                        xeltFind = ((IHasXmlNode)xnitrFinds.Current).GetNode() as XmlElement;                        for (int i = 0; i < xeltFind.ChildNodes.Count; i++)                        {                            if (xeltFind.ChildNodes[i].NodeType == XmlNodeType.Element)                            {                                // this.showXml是aspx定义的一个标签,这个可以注释调不要                                // <div id="showXml" runat="server"></div>                                // xeltFind.ChildNodes[i].Name 就是节点的名字                                // xeltFind.ChildNodes[i].InnerText 就是节点的内容                                this.showXml.InnerHtml += xeltFind.ChildNodes[i].Name + "=" + xeltFind.ChildNodes[i].InnerText + "<br>";                            }                        }                    }                }            }        }    }}


最后结果(画面表示)



原创粉丝点击