如何把表中的数据按一定格式写到xml文件中去!请各位XDJM们帮忙啊!!!

ldw701 2004-10-19 02:49:21
在数据库中有两个表,结构如下
table1
ID(自增) role
数据如下:
1 admin
2 help
3 service
table2
ID(自增) emailaddr smtpserver username password roleID(为table1中的ID)
数据如下:
1 11@sina.com sina 11 22 1
2 23@126.com 126 fasd asfd 1
3 ja@sohu.com sohu ladf ladf 2
4 jl@etang.com etang jladasf l;adf 3
5 ld@sina.com.cn sina ljalf ljafd 3
我想把上面两个数据表中的数据存放到一个xml文件中去,要求格式如下:
<?xml version="1.0">
<role>
<admin>
<emailaddr="11@sina.com.cn" smtpserver="sina" username="11" password="22">
.所有roleid为1的记录
.
.
</admin>
<help>
<emailaddr="ja@sohu.com" smtpserver="sohu" username =".......>
...所有roleid为2的记录
</help>
<service>
<emailaddr="ja@sohu.com" smtpserver="sohu" username =".......>
...所有roleid为3的记录
</service>
</role>
请各位大侠告诉我该如何做啊!!!!

...全文
282 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
iswear428 2004-11-02
  • 打赏
  • 举报
回复
关注
BearRui 2004-10-20
  • 打赏
  • 举报
回复
如果要把<Table>去掉可能用dataset是不能实现的!!!

而Table1是不可以去掉的!!!
BearRui 2004-10-20
  • 打赏
  • 举报
回复
<Table1 emailaddr="11@sina.com" smtpserver="sina" username="11" password="22" />

楼主问可不可以把Table1去掉,去掉是不可能的,就算年一手动把table1删了,也是不行,你删了后用IE打开试一下,就会出现错误,因为Table1是这个节点的名字,在XML文件中,节点是不能没有名字的,不过可以改成你喜欢的名字!!!
BearRui 2004-10-20
  • 打赏
  • 举报
回复
如果只想用dataset,那下面这个算是很接近你的要求了。
-----------------------------------------------------
SqlConnection cnn=new SqlConnection("server=BEAR;user id=sa;initial catalog=123;persist security info=True;");
cnn.Open();

SqlDataAdapter da=new SqlDataAdapter("select * from table1;select * from table2",cnn);
DataSet ds=new DataSet();
da.Fill(ds);

//建立外建关系
DataRelation dr=new DataRelation("PK_id_roleid",ds.Tables[0].Columns["id"],ds.Tables[1].Columns["roleid"]);
dr.Nested=true;
ds.Relations.Add(dr);

ds.Tables[0].Columns["id"].ColumnMapping=MappingType.Hidden;
ds.Tables[1].Columns["id"].ColumnMapping=MappingType.Hidden;
ds.Tables[1].Columns["emailaddr"].ColumnMapping=MappingType.Attribute;
ds.Tables[1].Columns["smtpserver"].ColumnMapping=MappingType.Attribute;
ds.Tables[1].Columns["username"].ColumnMapping=MappingType.Attribute;
ds.Tables[1].Columns["password"].ColumnMapping=MappingType.Attribute;
ds.Tables[1].Columns["roleid"].ColumnMapping=MappingType.Hidden;

ds.WriteXml(@"e:\1.xml");

cnn.Close();
------------------------
测试结果:
<?xml version="1.0" standalone="yes" ?>
- <NewDataSet>
- <Table>
<role>admin</role>
<Table1 emailaddr="11@sina.com" smtpserver="sina" username="11" password="22" />
<Table1 emailaddr="23@126.com" smtpserver="126" username="123" password="123" />
</Table>
- <Table>
<role>help</role>
<Table1 emailaddr="ja@sohu.com" smtpserver="sohu" username="sohu" password="sohu" />
</Table>
- <Table>
<role>server</role>
<Table1 emailaddr="jl@etang.com" smtpserver="etang" username="etang" password="e" />
<Table1 emailaddr="ld@sina.com.cn" smtpserver="sina" username="qwe" password="daf" />
</Table>
</NewDataSet>
wenww 2004-10-20
  • 打赏
  • 举报
回复
up
xiaohutushen 2004-10-19
  • 打赏
  • 举报
回复
使用XmlTextWriter对象创建一个简单的XML文件
接下来,我们示范一下如何使用XmlTextWriter对象来创建一个简单的XML文档,并把它保存到指定的位置,这个XML文件将包含访问该文件的用户的相关信息,它的输出格式如下:
<userInfo>
<browserInfo>
<urlReferrer>URL referrer info</urlReferrer>
<userAgent>User agent referrer info</userAgent>
<userLanguages>languages info</userLanguages>
</browserInfo>
<visitInfo timeVisited="date/time the page was visited">
<ip>visitor's IP address</ip>
<rawUrl>raw URL requested</rawUrl>
</visitInfo>
</userInfo>
选用这个有这种结构的XML文件为输出对象,是为了可以在这里使用所有先前讲过的方法,方便阐述。

如下便是创建该XML文件所需的ASP.NET代码:
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Text" %>
<script language="C#" runat="server">
void Page_Load(object sender, EventArgs e)
{
// Create a new XmlTextWriter instance
XmlTextWriter writer = new
XmlTextWriter(Server.MapPath("userInfo.xml"), Encoding.UTF8);

// start writing!
writer.WriteStartDocument();
writer.WriteStartElement("userInfo");

// Creating the <browserInfo> element
writer.WriteStartElement("browserInfo");

if (Request.UrlReferrer == null)
writer.WriteElementString("urlReferrer", "none");
else
writer.WriteElementString("urlReferrer",
Request.UrlReferrer.PathAndQuery);

writer.WriteElementString("userAgent", Request.UserAgent);
writer.WriteElementString("userLanguages",
String.Join(", ", Request.UserLanguages));
writer.WriteEndElement();

// Creating the <visitInfo> element
writer.WriteStartElement("visitInfo");
writer.WriteAttributeString("timeVisited", DateTime.Now.ToString());
writer.WriteElementString("ip", Request.UserHostAddress);
writer.WriteElementString("rawUrl", Request.RawUrl);
writer.WriteEndElement();

writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
}
xinzhe 2004-10-19
  • 打赏
  • 举报
回复
UP
ldw701 2004-10-19
  • 打赏
  • 举报
回复
To:luckweb(冰川)
该如何写啊??????
luckweb 2004-10-19
  • 打赏
  • 举报
回复
就是个循环吗,没办的呀

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧