对Datset导出XML到客户端的一些补充
2008-03-28 10:55
489 查看
上一个文章对于一般的格式来说已经够钐了,可是对于一些特珠的就不行比如说,我要导出的格式是这样的
<newDataSet>
<people id="1">
<name>1111</name>
<sex>1</sex>
</people>
</newDataSet>
就是相应的结点要有一个属性。这个直接用Dataset输出就不行。只能进行XML重构来处理。
XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
writer.IndentChar = ' ';
writer.WriteRaw("<?xml version=/"1.0/" ?>");
writer.WriteStartElement("Yuanlin");
//writer.e
for(int i=0;i<dt.Rows.Count;i++)
{
writer.WriteStartElement("Corp");
writer.WriteAttributeString("id",dt.Rows.Count.ToString());
writer.WriteStartElement("CorpInfo");
writer.WriteElementString("Name",dt.Rows[i]["Name"].ToString());
writer.WriteElementString("AptLevel",dt.Rows[i]["AptLevel"].ToString());
writer.WriteElementString("CropBirthDate",dt.Rows[i]["CropBirthDate"].ToString());
writer.WriteElementString("ManageDept",dt.Rows[i]["ManageDept"].ToString());
writer.WriteElementString("Province",dt.Rows[i]["Province"].ToString());
writer.WriteElementString("City",dt.Rows[i]["City"].ToString());
writer.WriteElementString("Region",dt.Rows[i]["Region"].ToString());
writer.WriteElementString("Address",dt.Rows[i]["Address"].ToString());
writer.WriteEndElement();
//获取人员信息
DataView dv = DtEmployee.DefaultView;
dv.RowFilter = String.Format("FBaseInfoID='{0}'",dt.Rows[i]["FID"].ToString());
for(int j=0;j<dv.Count;j++)
{
writer.WriteStartElement("USerInfo");
writer.WriteElementString("Name",dv[j].Row["Name"].ToString());
writer.WriteElementString("Sex",dv[j].Row["Sex"].ToString());
writer.WriteElementString("CardCode",dv[j].Row["CardCode"].ToString());
writer.WriteElementString("Specialty",dv[j].Row["Specialty"].ToString());
writer.WriteElementString("Duty",dv[j].Row["Duty"].ToString());
writer.WriteEndElement();
}
dv = DtProject.DefaultView;
dv.RowFilter = String.Format("FBaseInfoID='{0}'",dt.Rows[i]["FID"].ToString());
for(int j=0;j<dv.Count;j++)
{
writer.WriteStartElement("ProjectInfo");
writer.WriteElementString("FProjectName",dv[j].Row["FProjectName"].ToString());
writer.WriteElementString("FProvince",dv[j].Row["FProvince"].ToString());
writer.WriteElementString("FCity",dv[j].Row["FCity"].ToString());
writer.WriteElementString("FRegion",dv[j].Row["FRegion"].ToString());
writer.WriteElementString("FProjectType",dv[j].Row["FProjectType"].ToString());
writer.WriteElementString("FArea",dv[j].Row["FArea"].ToString());
writer.WriteElementString("FPrice",dv[j].Row["FPrice"].ToString());
writer.WriteElementString("FCompleteArea",dv[j].Row["FCompleteArea"].ToString());
writer.WriteElementString("FCompleteCost",dv[j].Row["FCompleteCost"].ToString());
writer.WriteEndElement();
}
writer.WriteEndElement();
}
writer.WriteEndElement();
Response.AddHeader("Content-Disposition", "attachment; filename=Acounts.xml");
this.Response.ContentType = "text/xml";
Response.ContentType = "application/octet-stream";
writer.Flush();
Response.End();
writer.Close();
<newDataSet>
<people id="1">
<name>1111</name>
<sex>1</sex>
</people>
</newDataSet>
就是相应的结点要有一个属性。这个直接用Dataset输出就不行。只能进行XML重构来处理。
XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
writer.IndentChar = ' ';
writer.WriteRaw("<?xml version=/"1.0/" ?>");
writer.WriteStartElement("Yuanlin");
//writer.e
for(int i=0;i<dt.Rows.Count;i++)
{
writer.WriteStartElement("Corp");
writer.WriteAttributeString("id",dt.Rows.Count.ToString());
writer.WriteStartElement("CorpInfo");
writer.WriteElementString("Name",dt.Rows[i]["Name"].ToString());
writer.WriteElementString("AptLevel",dt.Rows[i]["AptLevel"].ToString());
writer.WriteElementString("CropBirthDate",dt.Rows[i]["CropBirthDate"].ToString());
writer.WriteElementString("ManageDept",dt.Rows[i]["ManageDept"].ToString());
writer.WriteElementString("Province",dt.Rows[i]["Province"].ToString());
writer.WriteElementString("City",dt.Rows[i]["City"].ToString());
writer.WriteElementString("Region",dt.Rows[i]["Region"].ToString());
writer.WriteElementString("Address",dt.Rows[i]["Address"].ToString());
writer.WriteEndElement();
//获取人员信息
DataView dv = DtEmployee.DefaultView;
dv.RowFilter = String.Format("FBaseInfoID='{0}'",dt.Rows[i]["FID"].ToString());
for(int j=0;j<dv.Count;j++)
{
writer.WriteStartElement("USerInfo");
writer.WriteElementString("Name",dv[j].Row["Name"].ToString());
writer.WriteElementString("Sex",dv[j].Row["Sex"].ToString());
writer.WriteElementString("CardCode",dv[j].Row["CardCode"].ToString());
writer.WriteElementString("Specialty",dv[j].Row["Specialty"].ToString());
writer.WriteElementString("Duty",dv[j].Row["Duty"].ToString());
writer.WriteEndElement();
}
dv = DtProject.DefaultView;
dv.RowFilter = String.Format("FBaseInfoID='{0}'",dt.Rows[i]["FID"].ToString());
for(int j=0;j<dv.Count;j++)
{
writer.WriteStartElement("ProjectInfo");
writer.WriteElementString("FProjectName",dv[j].Row["FProjectName"].ToString());
writer.WriteElementString("FProvince",dv[j].Row["FProvince"].ToString());
writer.WriteElementString("FCity",dv[j].Row["FCity"].ToString());
writer.WriteElementString("FRegion",dv[j].Row["FRegion"].ToString());
writer.WriteElementString("FProjectType",dv[j].Row["FProjectType"].ToString());
writer.WriteElementString("FArea",dv[j].Row["FArea"].ToString());
writer.WriteElementString("FPrice",dv[j].Row["FPrice"].ToString());
writer.WriteElementString("FCompleteArea",dv[j].Row["FCompleteArea"].ToString());
writer.WriteElementString("FCompleteCost",dv[j].Row["FCompleteCost"].ToString());
writer.WriteEndElement();
}
writer.WriteEndElement();
}
writer.WriteEndElement();
Response.AddHeader("Content-Disposition", "attachment; filename=Acounts.xml");
this.Response.ContentType = "text/xml";
Response.ContentType = "application/octet-stream";
writer.Flush();
Response.End();
writer.Close();
相关文章推荐
- IT售前经理成功签单6式
- VC Web开发Navigate应用
- Oracle数据库导入数据的方法
- c# IO总结
- 把dataset作为一个xml文件传给客户端
- Donet 夏令时的处理(记忆)
- Twofish加密算法详解
- C/C++ 程序设计员应聘常见面试试题深入剖析
- EJB注释-2(EJB学习笔记之消息驱动)
- 愛とはなんなんもの?
- Google中国的首页变化
- 新一代才子原创歌曲--《伤心日记》- 孔朝
- 迁移数据库的文件到不同路径
- Don't redirect after setting a Session variable (or do it right)
- [MySQL] 使用 mysqldump 線上備份 InnoDB
- 过滤重复记录
- 图片太大,拖动显示图片 全图
- asp.net页面之间传中文是乱码的处理方法
- C++资源之不完全导引 [下]
- 关于正则表达式