第一:自定义xml结构
public void ConvertDataSetToXML(string path, DataSet dsSrc)
{
try
{
XmlDocument doc = new XmlDocument();
///声明xml头部
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
doc.AppendChild(dec);
///创建根节点
///根据井号确定根节点名
//string strRootName = Regex.Replace(AppParams.mdlPrjInfo.XM, @"\s", "");
XmlElement root = doc.CreateElement("root");
doc.AppendChild(root);
///将dsOrgiData 中的数据 循环加入root;
for (int i = 0; i < dsSrc.Tables.Count; i++)
{
DataTable dt = dsSrc.Tables[i];
AddTableAsNode(dt, root, doc);
}
doc.Save(path);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
/// <summary>
/// 一个表作为一个节点导出
/// </summary>
/// <param name="dt"></param>
/// <param name="root"></param>
/// <param name="doc"></param>
/// <returns></returns>
private bool AddTableAsNode(DataTable dt, XmlElement root, XmlDocument doc)
{
try
{
bool bRst = false;
XmlElement xmlTable = doc.CreateElement(dt.TableName);
XmlElement xmlRow = null;
for (int row = 0; row < dt.Rows.Count; row++)
{
xmlRow = doc.CreateElement("Rows");
for (int col = 0; col < dt.Columns.Count; col++)
{
string strName = dt.Columns[col].ColumnName;
xmlRow.SetAttribute(strName, dt.Rows[row][col].ToString());
}
xmlTable.AppendChild(xmlRow);
}
root.AppendChild(xmlTable);
return bRst;
}
catch (Exception ex)
{
return false;
}
}