XML读取信息并显示

这个类命名叫Message.cs

namespace Common { public class Message { /// <summary> /// 信息编号 /// </summary> private string messagecode = string.Empty; public string MessageCode { get { return messagecode; } } /// <summary> /// 信息描述 /// </summary> private string messagedata = string.Empty; public string MessageData { get { return messagedata; } } public void Setmessagedata(string value) { messagedata = value; } public Message(string mc,int x) { this.messagedata = mc; } /// <summary> /// 构造函数 /// </summary> /// <param name="mc">信息编号</param> public Message(string mc) { this.messagecode = mc; using (System.Data.DataSet ds = XMLHelp.ConvertXMLFileToDataSet(System.Configuration.ConfigurationManager.AppSettings["MessagePath"])) { if (ds.Tables[0] != null) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["Code"].ToString() == mc) { this.messagedata = ds.Tables[0].Rows[i]["Content"].ToString(); break; } } } } } } }

 下面这个类命名叫:XMLHelp.cs

都放在DAL文件里面,自己修改命名空间

using System;
using System.Text;
using System.Xml;
using System.Data;
using System.IO;
using System.Web;

namespace Common
{
    public class XMLHelp
    {/// <summary>
        /// 将xml文件转换为DataSet
        /// </summary>
        /// <param name="xmlFile">XML文件路径</param>
        /// <returns>DataSet</returns>
        public static DataSet ConvertXMLFileToDataSet(string xmlFile)
        {
            StringReader sReader = null;
            XmlTextReader reader = null;
            try
            {
                XmlDocument xDoc = new XmlDocument();
                try
                {
                    xDoc.Load(xmlFile);
                }
                catch (DirectoryNotFoundException)
                {
                    xmlFile = Path.Combine(HttpContext.Current.Server.MapPath("~"), xmlFile);
                    xDoc.Load(xmlFile);
                }
                DataSet dResult = new DataSet();
                sReader = new StringReader(xDoc.InnerXml);
                reader = new XmlTextReader(sReader);
                dResult.ReadXml(reader);
                return dResult;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (reader != null) reader.Close();
            }
        }

        /// <summary>
        /// 将DataSet转换为xml文件
        /// </summary>
        /// <param name="ds"></param>
        /// <param name="xmlFile"></param>
        public static void ConvertDataSetToXMLFile(DataSet ds, string xmlFile)
        {
            MemoryStream stream = null;
            XmlTextWriter writer = null;

            try
            {
                stream = new MemoryStream();
                //从stream装载到XmlTextReader
                writer = new XmlTextWriter(stream, Encoding.Unicode);

                //用WriteXml方法写入文件.
                ds.WriteXml(writer);
                int count = (int)stream.Length;
                byte[] arr = new byte[count];
                stream.Seek(0, SeekOrigin.Begin);
                stream.Read(arr, 0, count);

                //返回Unicode编码的文本
                UnicodeEncoding utf = new UnicodeEncoding();
                StreamWriter sw = new StreamWriter(xmlFile);
                sw.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
                sw.WriteLine(utf.GetString(arr).Trim());
                sw.Close();
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (writer != null) writer.Close();
            }
        }
    }
}

 

 

如:后台弹窗:

                    string ID = Request["ID"];
                    if (!Function.CheckStr(ID, 1))
                    {
                        Function.ShowMsgBox(new Message("M0008").MessageData, "baoming.aspx", false);  //掉出方法,然后给定参数,直接执行就OK
                    }

在项目根目录有个XML文件夹,里面有个Message.xml文件,内容如下:

这个XML文件里的Code自己定义,content就是你要读取的内容,需要的时候匹配好Code字段就好了。就是这么简单

 

posted @ 2015-04-30 13:20  小莫_yu  阅读(505)  评论(1编辑  收藏  举报