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