Tom-Net

导航

生成XML文件DATATABLE

  #region  生成XML的格式文件


     /// <summary>
     /// 生成XML的格式文件
     /// </summary>
     /// <param name="XmlFileName">生成XML的格式文件的路径和文件名</param>
     /// <param name="csspath">css的路径和文件名</param>
     /// <param name="ItemName">类名,父节点</param>
     /// <param name="table">DataTable</param>
     /// <returns></returns>
 
    public static bool CreateXml(string XmlFileName,string csspath,string ItemName, DataTable table)
    {
        StringBuilder strBr=new StringBuilder("type=\"text/css\"");
        strBr.Append(" href=\"");
        strBr.Append(csspath);
        strBr.Append('"');
        string mypath = strBr.ToString();

 

        //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", mypath);
            //开始写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);
            //
            foreach (DataRow dr in table.Rows)
            {
                for (int i = 0; i < table.Columns.Count; i++)
                {

                    //生成一个子节点   
                    xmlwriter.WriteElementString(table.Columns[i].ColumnName, dr[i].ToString());
                }
            }
              
           //
            xmlwriter.WriteEndElement();
            xmlwriter.WriteEndElement();
            xmlwriter.WriteEndDocument();         
            return true;  
        }
        catch  
        {     
            return false; 
        }  
        finally
        {
            xmlwriter.Close(); //完成xml文件的输出,关闭
          
        }
    }
   #endregion

posted on 2008-09-28 11:40  Tom_Net  阅读(139)  评论(0)    收藏  举报