您的位置:首页 > 其它

生成和读取XML文件的方法

2012-09-04 17:37 357 查看
自己根据网上现有的代码,改写而成的。

生成XML文件的代码:

/// <summary>

///

/// </summary>

/// <param name="dt">需要传的参数</param>

public static void getXml(DataTable dt)

{

string path = System.Web.HttpContext.Current.Server.MapPath("~/XML//");//生成文件所在的位置

if (!Directory.Exists(path))

{

Directory.CreateDirectory(path);

}

path += "Plant.xml";//文件名称

exportToXml(path, dt);

}

/// <summary>

/// 生成XML文件

/// </summary>

/// <param name="filename">文件路径</param>

/// <param name="dt">数据源</param>

public static void exportToXml(string filename, DataTable dt)

{

StreamWriter sr = new StreamWriter(filename, false, System.Text.Encoding.UTF8);

//写文件头部内容

//下面是生成RSS的OPML文件

sr.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");

sr.WriteLine("<Vote>");

sr.WriteLine("<VoteInfo><ID>1</ID><VoteTitle></VoteTitle>");

int i = 0;

if (dt.Rows.Count > 0)

{

for (int k = 0; k < dt.Rows.Count;k++ )

{

i++;

if (k == 0)

{

sr.WriteLine("<Item>");

sr.WriteLine("<VoteID>" + i + "</VoteID>");

sr.WriteLine("<Title>" + Convert.ToDateTime(dt.Rows[k]["Addtime"].ToString()).ToLongDateString() + "</Title>");

string shen = "";

string unit = "";

string m = dt.Rows[k]["Height"].ToString();

Regex reg = new Regex(@"[^0-9,^.]+");

Regex reg2 = new Regex(@"[^A-Za-z]+");

shen = reg.Replace(m, "");

unit = reg2.Replace(m, "");

sr.WriteLine("<Unit>"+unit+"</Unit>");

sr.WriteLine("<Count>" + shen + "</Count>");

sr.WriteLine("</Item>");

}

else

{

sr.WriteLine("<Item>");

sr.WriteLine("<VoteID>" + i + "</VoteID>");

sr.WriteLine("<Title>" + Convert.ToDateTime(dt.Rows[k-1]["Updatetime"].ToString()).ToLongDateString() + "</Title>");

string shen = "";

string unit = "";

string m = dt.Rows[k]["Height"].ToString();

Regex reg = new Regex(@"[^0-9,^.]+");

Regex reg2 = new Regex(@"[^A-Za-z]+");

shen = reg.Replace(m, "");

unit = reg2.Replace(m, "");

sr.WriteLine("<Unit>" + unit + "</Unit>");

sr.WriteLine("<Count>" + shen + "</Count>");

sr.WriteLine("</Item>");

}

}

}

//写文件尾部内容

sr.WriteLine("</VoteInfo>");

sr.WriteLine("</Vote>");

sr.Close();

}

读取xml文件的代码:

/// <summary>

/// 获取xml中的数据()

/// </summary>

/// <param name="xdata">x轴数据</param>

/// <param name="ydata">y轴数据</param>

/// <param name="unit">单位</param>

public static void getXML(string xdata, string ydata, string unit)

{

XmlDocument myDoc = new XmlDocument();

myDoc.Load(System.Web.HttpContext.Current.Server.MapPath("~/XML//Plant.xml"));

XmlNode xn = myDoc.SelectSingleNode("//VoteInfo[ID='1']");//读取数据源

XmlNodeList xnl = xn.SelectNodes("Item");

for (int i = 0; i < xnl.Count; i++)

{

XmlNode xn0 = xnl.Item(i);

ydata += xn0.SelectSingleNode("Count").InnerText + ",";

xdata += "\'" + xn0.SelectSingleNode("Title").InnerText + "\'" + ",";

unit = xn0.SelectSingleNode("Unit").InnerText;

}

ydata = ydata.Remove(ydata.Length - 1, 1);

xdata = xdata.Remove(xdata.Length - 1, 1);

}
本文出自 “苍穹断雪” 博客,请务必保留此出处http://cangqiong.blog.51cto.com/3151131/982061
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: