c# 将数据导出成指定xml格式
来源:互联网 发布:微霸软件 编辑:程序博客网 时间:2024/06/05 20:13
Dataset的WriteXml是按记录一条一条的写成XML,对应的,不可能给你写成分省市的,必须要自己写循环判断,自己构造xml
用select * from [TableName] order by PROVINCE, CITY, COUNTRY, TOWN这条语句查询出结果,这样记录是按省市乡镇依次排列的,读到DataTable里,再循环读取,当前记录与前一条记录进行比对,如果省市乡都一样就追加“<town name="" /> ”,如果省市一样,追加<country>,如果只是省一样,追加<city>,全部遍历一遍,构造xml字符串即可。
补充:
protected void WriteXML()
{
DataTable dt = new YourClass().YourMethod();//你的类.你的方法
string str = "<address>";
for (int i = 0; i < dt.Rows.Count; i++)
{
if (i == 0)
{
str += "<province name=\"" + dt.Rows[i]["Province"].ToString() + "\">" +
"<city name=\"" + dt.Rows[i]["City"].ToString() + "\">" +
"<country name=\"" + dt.Rows[i]["Country"].ToString() + "\">" +
"<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else
{
if (dt.Rows[i]["Province"].ToString() == dt.Rows[i - 1]["Province"].ToString() &&
dt.Rows[i]["City"].ToString() == dt.Rows[i - 1]["City"].ToString() &&
dt.Rows[i]["Country"].ToString() == dt.Rows[i - 1]["Country"].ToString())
{
str += "<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else if (dt.Rows[i]["Province"].ToString() == dt.Rows[i - 1]["Province"].ToString() &&
dt.Rows[i]["City"].ToString() == dt.Rows[i - 1]["City"].ToString())
{
str += "</country>";
str += "<country name=\"" + dt.Rows[i]["Country"].ToString() + "\">" +
"<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else if (dt.Rows[i]["Province"].ToString() == dt.Rows[i - 1]["Province"].ToString())
{
str += "</country>";
str += "</city>";
str += "<city name=\"" + dt.Rows[i]["City"].ToString() + "\">" + "<country name=\"" + dt.Rows[i]["Country"].ToString() + "\">" +
"<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else
{
str += "</province>";
}
if (i == dt.Rows.Count - 1)
{
str += "</country>";
str += "</city>";
str += "</province>";
}
}
}
str += "</address>";
}
结果如图
Dataset的WriteXml是按记录一条一条的写成XML,对应的,不可能给你写成分省市的,必须要自己写循环判断,自己构造xml
用select * from [TableName] order by PROVINCE, CITY, COUNTRY, TOWN这条语句查询出结果,这样记录是按省市乡镇依次排列的,读到DataTable里,再循环读取,当前记录与前一条记录进行比对,如果省市乡都一样就追加“<town name="" /> ”,如果省市一样,追加<country>,如果只是省一样,追加<city>,全部遍历一遍,构造xml字符串即可。
补充:
protected void WriteXML()
{
DataTable dt = new YourClass().YourMethod();//你的类.你的方法
string str = "<address>";
for (int i = 0; i < dt.Rows.Count; i++)
{
if (i == 0)
{
str += "<province name=\"" + dt.Rows[i]["Province"].ToString() + "\">" +
"<city name=\"" + dt.Rows[i]["City"].ToString() + "\">" +
"<country name=\"" + dt.Rows[i]["Country"].ToString() + "\">" +
"<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else
{
if (dt.Rows[i]["Province"].ToString() == dt.Rows[i - 1]["Province"].ToString() &&
dt.Rows[i]["City"].ToString() == dt.Rows[i - 1]["City"].ToString() &&
dt.Rows[i]["Country"].ToString() == dt.Rows[i - 1]["Country"].ToString())
{
str += "<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else if (dt.Rows[i]["Province"].ToString() == dt.Rows[i - 1]["Province"].ToString() &&
dt.Rows[i]["City"].ToString() == dt.Rows[i - 1]["City"].ToString())
{
str += "</country>";
str += "<country name=\"" + dt.Rows[i]["Country"].ToString() + "\">" +
"<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else if (dt.Rows[i]["Province"].ToString() == dt.Rows[i - 1]["Province"].ToString())
{
str += "</country>";
str += "</city>";
str += "<city name=\"" + dt.Rows[i]["City"].ToString() + "\">" + "<country name=\"" + dt.Rows[i]["Country"].ToString() + "\">" +
"<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else
{
str += "</province>";
}
if (i == dt.Rows.Count - 1)
{
str += "</country>";
str += "</city>";
str += "</province>";
}
}
}
str += "</address>";
}
结果如图
用select * from [TableName] order by PROVINCE, CITY, COUNTRY, TOWN这条语句查询出结果,这样记录是按省市乡镇依次排列的,读到DataTable里,再循环读取,当前记录与前一条记录进行比对,如果省市乡都一样就追加“<town name="" /> ”,如果省市一样,追加<country>,如果只是省一样,追加<city>,全部遍历一遍,构造xml字符串即可。
补充:
protected void WriteXML()
{
DataTable dt = new YourClass().YourMethod();//你的类.你的方法
string str = "<address>";
for (int i = 0; i < dt.Rows.Count; i++)
{
if (i == 0)
{
str += "<province name=\"" + dt.Rows[i]["Province"].ToString() + "\">" +
"<city name=\"" + dt.Rows[i]["City"].ToString() + "\">" +
"<country name=\"" + dt.Rows[i]["Country"].ToString() + "\">" +
"<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else
{
if (dt.Rows[i]["Province"].ToString() == dt.Rows[i - 1]["Province"].ToString() &&
dt.Rows[i]["City"].ToString() == dt.Rows[i - 1]["City"].ToString() &&
dt.Rows[i]["Country"].ToString() == dt.Rows[i - 1]["Country"].ToString())
{
str += "<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else if (dt.Rows[i]["Province"].ToString() == dt.Rows[i - 1]["Province"].ToString() &&
dt.Rows[i]["City"].ToString() == dt.Rows[i - 1]["City"].ToString())
{
str += "</country>";
str += "<country name=\"" + dt.Rows[i]["Country"].ToString() + "\">" +
"<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else if (dt.Rows[i]["Province"].ToString() == dt.Rows[i - 1]["Province"].ToString())
{
str += "</country>";
str += "</city>";
str += "<city name=\"" + dt.Rows[i]["City"].ToString() + "\">" + "<country name=\"" + dt.Rows[i]["Country"].ToString() + "\">" +
"<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else
{
str += "</province>";
}
if (i == dt.Rows.Count - 1)
{
str += "</country>";
str += "</city>";
str += "</province>";
}
}
}
str += "</address>";
}
结果如图
Dataset的WriteXml是按记录一条一条的写成XML,对应的,不可能给你写成分省市的,必须要自己写循环判断,自己构造xml
用select * from [TableName] order by PROVINCE, CITY, COUNTRY, TOWN这条语句查询出结果,这样记录是按省市乡镇依次排列的,读到DataTable里,再循环读取,当前记录与前一条记录进行比对,如果省市乡都一样就追加“<town name="" /> ”,如果省市一样,追加<country>,如果只是省一样,追加<city>,全部遍历一遍,构造xml字符串即可。
补充:
protected void WriteXML()
{
DataTable dt = new YourClass().YourMethod();//你的类.你的方法
string str = "<address>";
for (int i = 0; i < dt.Rows.Count; i++)
{
if (i == 0)
{
str += "<province name=\"" + dt.Rows[i]["Province"].ToString() + "\">" +
"<city name=\"" + dt.Rows[i]["City"].ToString() + "\">" +
"<country name=\"" + dt.Rows[i]["Country"].ToString() + "\">" +
"<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else
{
if (dt.Rows[i]["Province"].ToString() == dt.Rows[i - 1]["Province"].ToString() &&
dt.Rows[i]["City"].ToString() == dt.Rows[i - 1]["City"].ToString() &&
dt.Rows[i]["Country"].ToString() == dt.Rows[i - 1]["Country"].ToString())
{
str += "<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else if (dt.Rows[i]["Province"].ToString() == dt.Rows[i - 1]["Province"].ToString() &&
dt.Rows[i]["City"].ToString() == dt.Rows[i - 1]["City"].ToString())
{
str += "</country>";
str += "<country name=\"" + dt.Rows[i]["Country"].ToString() + "\">" +
"<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else if (dt.Rows[i]["Province"].ToString() == dt.Rows[i - 1]["Province"].ToString())
{
str += "</country>";
str += "</city>";
str += "<city name=\"" + dt.Rows[i]["City"].ToString() + "\">" + "<country name=\"" + dt.Rows[i]["Country"].ToString() + "\">" +
"<town name=\"" + dt.Rows[i]["Town"].ToString() + "\" />";
}
else
{
str += "</province>";
}
if (i == dt.Rows.Count - 1)
{
str += "</country>";
str += "</city>";
str += "</province>";
}
}
}
str += "</address>";
}
结果如图
说明:只支持一个省的,要是多个省的你再稍做改动
- c# 将数据导出成指定xml格式
- SQLServer将数据导出成CSV格式
- 将水晶报表直接导出成指定格式.
- C#将字符串转换成XML格式
- 使用存储过程将数据以XML格式导出到XML文件
- DELPHI如何将数据导出到指定格式的EXCEL模版
- mysql 将数据导出成excel文件(.xls格式)
- 将DataTable中的数据以Xml格式写到指定的文件内,并读取
- .net从将数据库中的数据导出到Excel格式的xml
- 跨平台图表控件TeeChart使用教程:将图表数据导出为XML格式
- 解析XML格式的指定数据
- [转帖] 将数据导出成为excle格式
- MYSQL命令行导出XML格式数据
- java 将EXCEL表格数据转换成XML格式
- java 将EXCEL表格数据转换成XML格式
- java 将EXCEL表格数据转换成XML格式
- 怎么将数据保存成XML格式的例子
- php将数据库中的数据转换成xml格式的
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用7
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用8
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用9
- sort函数
- 20 years of Linux
- c# 将数据导出成指定xml格式
- python的学习资料汇总
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用10
- 在Asp.Net中如何将从SQL读出来的表转化成XML文件并保存在指定的位置中用C#
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用11
- 分水岭分割算法
- zoj 1091 Knight Moves
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用12
- vs2005 智能提示失效