生成XML通用方法
using System.IO;
using System.Text;
using System.Xml;
using System.Data.SqlClient;
#region 生成XML的格式文件
/// <summary>
/// 生成XML的格式文件
/// </summary>
/// <param name="XmlFileName">生成XML的格式文件的路径和文件名</param>
/// <param name="csspath">css的路径和文件名</param>
/// <param name="ItemName">类名,父节点</param>
/// <param name="dr">SqlDataReader</param>
/// <returns></returns>
public static bool CreateXml(string XmlFileName,string csspath,string ItemName, SqlDataReader dr)
{
//Encoding.Unicode为生成XML文件的编码格式,到时候合输出<?xml version="1.0" encoding="utf8"?>
XmlTextWriter xmlwriter = new XmlTextWriter(XmlFileName, Encoding.UTF8);
try
{
xmlwriter.Formatting = Formatting.Indented;
// 这个比较重要,这个属性说明xml文件里面的内容是按级别缩进的。
//下面开始生成文件的内容
xmlwriter.WriteStartDocument();
xmlwriter.WriteProcessingInstruction("xml-stylesheet", csspath);
//开始写xml,在最后有一个与之匹配的w.WriteEndDocument();
xmlwriter.WriteStartElement("myxml");
//生成一个节点
xmlwriter.WriteAttributeString("xmlns:xsi", "http:www.w3.org/2001/XMLSchema-instance");
//myxml节点的属性
xmlwriter.WriteAttributeString("xmlns:xsd", "http:www.w3.org/2001/XMLSchema");
//myxml节点属性,最后效果:
//<myxml xmlns:xsi="http:www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http:www.w3.org/2001/XMLSchema">
xmlwriter.WriteStartElement(ItemName);
if (dr.Read())
{
for (int i=0; i < dr.FieldCount; i++)
{
//生成一个子节点
xmlwriter.WriteElementString(dr.GetName(i), dr.GetValue(i).ToString());
}
}
xmlwriter.WriteEndElement();
xmlwriter.WriteEndElement();
xmlwriter.WriteEndDocument();
return true;
}
catch
{
return false;
}
finally
{
xmlwriter.Close(); //完成xml文件的输出,关闭
dr.Close();
}
}
#endregion
浙公网安备 33010602011771号