Tom-Net

导航

生成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

posted on 2008-09-27 17:18  Tom_Net  阅读(259)  评论(0)    收藏  举报