读书人

c# 导出xml 请教

发布时间: 2012-02-03 22:02:47 作者: rapoo

c# 导出xml 请问各位高手
在.net,c#下我要把数据导出和导入到xml
请教各位高手怎么做,最好给个实例。


[解决办法]
楼主试试下面的方法,最近看了看,应该对你有用的
string xmlFilePath = @"D:\Data\Area.xml";
try
{

XmlWriter writer=XmlWriter.Create(xmlFilePath);


writer.WriteStartDocument(false);

writer.WriteComment("This XML file represents the details of " +

"an Area");

writer.WriteStartElement("Country");

DataSet dtPro=null;
DataSet dtCity = null;
DataSet dtArea =null;

dtPro = AjaxMethod.GetPovinceList();
int procount=0,citycount=0,areacount=0;

for(int i=0;i<dtPro.Tables[0].Rows.Count;i++)
{
writer.WriteStartElement("province");
writer.WriteAttributeString("proid",dtPro.Tables[0].Rows[i]["id"].ToString());
writer.WriteElementString("proname", dtPro.Tables[0].Rows[i]["province"].ToString());
writer.WriteElementString("proId", dtPro.Tables[0].Rows[i]["provinceID"].ToString());

dtCity = AjaxMethod.GetCityList(Convert.ToInt32(dtPro.Tables[0].Rows[i]["provinceID"]));
for(int j=0;j<dtCity.Tables[0].Rows.Count;j++)
{

writer.WriteStartElement("city");
writer.WriteAttributeString("cityid",dtCity.Tables[0].Rows[j]["id"].ToString());

writer.WriteElementString("cityName", dtCity.Tables[0].Rows[j]["city"].ToString());

writer.WriteElementString("cityId", dtCity.Tables[0].Rows[j]["cityID"].ToString());



dtArea = AjaxMethod.GetAreaList(Convert.ToInt32(dtCity.Tables[0].Rows[j]["cityID"]));
for(int a=0;a<dtArea.Tables[0].Rows.Count;a++)
{
writer.WriteStartElement("area");writer.WriteAttributeString("areaid",dtArea.Tables[0].Rows[a]["id"].ToString());writer.WriteElementString("cityName", dtArea.Tables[0].Rows[a]["area"].ToString());writer.WriteElementString("cityId", dtArea.Tables[0].Rows[a]["areaID"].ToString());
writer.WriteEndElement();
areacount++;
}
writer.WriteEndElement();
citycount++;
}

writer.WriteEndElement();

writer.Flush();
procount++;
this.Label1.Text = "File is written successfully"+"</br>";this.Label1.Text += "省份:"+ procount.ToString()+"条, 城市:"+citycount.ToString()+"条,区域:"+ areacount.ToString()+" 条";

}


}

catch (Exception ex)

{

this.Label1.Text = "An Exception occurred: " + ex.Message;

}

[解决办法]
http://www.cnblogs.com/bullfrog/archive/2006/01/29/324147.aspx
讲的蛮详细的,如果直接是DataSet转换XML那就直接用DataSet的WriteXml和ReamXml
[解决办法]
//导入的
XmlDocument document = new XmlDocument();
document.Load(dygl2005.WholeObj.AppPath + "\\XMLSETCOLUMN.xml");

XmlNodeList objXList = document.SelectNodes("//setcolumn//" + formname + "ds");

string lm = string.Empty;
//遍历符合条件节点
foreach (XmlNode objNode in objXList)
{
XmlNodeReader objNdRd = new XmlNodeReader(objNode);

while (objNdRd.Read())
{
if (objNdRd.NodeType == XmlNodeType.Element)


{
if (objNdRd.NodeType == XmlNodeType.Element)
{
if (objNdRd.Name == "列名")
{
string xr = objNdRd.ReadString();
System.Data.DataRow dr = dt.NewRow();
dr["列名"] = xr;
dr["列宽"] = string.Empty;
dt.Rows.Add(dr);
lm = xr;
}
else if (objNdRd.Name == "列宽")
{
System.Data.DataRow[] drr = dt.Select("列名='" + lm + "'");
if (drr.Length > 0)
drr[0]["列宽"] = objNdRd.ReadString();
}
else if (objNdRd.Name == "对齐方式")
{
System.Data.DataRow[] drr = dt.Select("列名='" + lm + "'");
if (drr.Length > 0)
drr[0]["对齐方式"] = objNdRd.ReadString();
}
}
}
}
}

读书人网 >C#

热点推荐