WriteXml类(C#)

来源:互联网 发布:解说录制视频软件 编辑:程序博客网 时间:2024/06/01 16:54

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

namespace Baolee.GeneralMethod
{
 /// <summary>
 /// WriteXml 的摘要说明。
 /// </summary>
 public class WriteXml
 {
  /// <summary>
  /// 构造函数
  /// </summary>
  public WriteXml()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }
  /// <summary>
  /// 读取XML和XSD, 两文件同名如果两文件不同名,则参看LoadSignXML
  /// </summary>
  /// <param name="descDirectory"></param>
  /// <param name="fileName">文件名,不带扩展名</param>
  /// <returns></returns>
  public DataSet Load(string descDirectory, string fileName)
  {
   DataSet set = new DataSet();
   set.ReadXmlSchema(descDirectory + @"/" + fileName + ".xsd");
   set.ReadXml(descDirectory + @"/" + fileName + ".xml");
   return set;
  }

  /// <summary>
  /// 读取单一XML文件
  /// </summary>
  /// <param name="descDirectory"></param>
  /// <param name="fileName"></param>
  /// <returns></returns>
  public DataSet LoadSignXML(string descDirectory, string fileName)
  {
   XmlDataDocument document = new XmlDataDocument();
   document.DataSet.ReadXml(descDirectory + @"/" + fileName + ".xml");
   return document.DataSet;
  }

  /// <summary>
  /// 读取XML和XSD, 两文件不同名
  /// </summary>
  /// <param name="descDirectory"></param>
  /// <param name="xmlName"></param>
  /// <param name="xsdName"></param>
  /// <returns></returns>
  public DataSet LoadSignXML(string descDirectory, string xmlName, string xsdName)
  {
   XmlDataDocument document = new XmlDataDocument();
   document.DataSet.ReadXmlSchema(descDirectory + @"/" + xsdName + ".xsd");
   document.DataSet.ReadXml(descDirectory + @"/" + xmlName + ".xml");
   return document.DataSet;
  }

  /// <summary>
  /// 生成XML文件,UTF-8格式,带XSD
  /// </summary>
  /// <param name="descDirectory"></param>
  /// <param name="fileName"></param>
  /// <param name="ds"></param>
  public void Write(string descDirectory, string fileName, DataSet ds)
  {
   if (!Directory.Exists(descDirectory))
   {
    Directory.CreateDirectory(descDirectory);
   }
   ds.WriteXml(descDirectory + @"/" + fileName + ".xml");
   ds.WriteXmlSchema(descDirectory + @"/" + fileName + ".xsd");
  }

  /// <summary>
  /// 生成XML文件,GB2312格式,带XSD,XML文件无版本号,StreamWrite
  /// </summary>
  /// <param name="descDirectory"></param>
  /// <param name="fileName"></param>
  /// <param name="ds"></param>
  public void WriteGB2312(string descDirectory, string fileName, DataSet ds)
  {
   StreamWriter writer = new StreamWriter(descDirectory + @"/" + fileName + ".xml", false, Encoding.GetEncoding("GB2312"));
   ds.WriteXml(writer);
   ds.WriteXmlSchema(descDirectory + @"/" + fileName + ".xsd");
  }
  /// <summary>
  /// 生成XML文件,GB2312格式,无XSD,XmlDocument
  /// </summary>
  /// <param name="descDirectory"></param>
  /// <param name="fileName"></param>
  /// <param name="ds"></param>
  public void WriteWithDoc(string descDirectory, string fileName, DataSet ds)
  {
   XmlDocument document = new XmlDocument();
   document.LoadXml(ds.GetXml());
   ds.Clear();
   ds.Dispose();
   XmlDeclaration newChild = document.CreateXmlDeclaration("1.0", "GB2312", "yes");
   XmlElement refChild = document.DocumentElement;
   document.InsertBefore(newChild, refChild);
   document.Save(descDirectory + @"/" + fileName + ".xml");
  }

 }
}

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rjzou2006/archive/2007/06/14/1651397.aspx

原创粉丝点击