注册 登录
编程论坛 ASP.NET技术论坛

怎么写入按格式xml

shangxisen 发布于 2010-09-01 22:37, 804 次点击
本人把数据库里的表写入XML,结果想乱码一样没有格式,求高手叫一下怎么按节点写入XML。
程序代码:
string sql = "SELECT * FROM 个人信息 FOR XML AUTO,XMLDATA";
        SqlConnection conn = new SqlConnection("server=-PC;database=text;uid=sa;pwd= ");
        SqlCommand cmd = new SqlCommand(sql, conn);
        conn.Open();
        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter(sql,conn);
        da.Fill(ds);
        ds.WriteXml(Server.MapPath("XML.xml"));
结果是
    <XML_F52E2B61-18A1-11d1-B105-00805F49916B>&lt;Schema name="Schema1" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"&gt;&lt;ElementType name="个人信息" content="empty" model="closed"&gt;&lt;AttributeType name="姓名" dt:type="string"/&gt;&lt;AttributeType name="学号" dt:type="i4"/&gt;&lt;AttributeType name="手机号" dt:type="i4"/&gt;&lt;AttributeType name="邮箱" dt:type="string"/&gt;&lt;AttributeType name="性别" dt:type="string"/&gt;&lt;AttributeType name="家乡" dt:type="string"/&gt;&lt;attribute type="姓名"/&gt;&lt;attribute type="学号"/&gt;&lt;attribute type="手机号"/&gt;&lt;attribute type="邮箱"/&gt;&lt;attribute type="性别"/&gt;&lt;attribute type="家乡"/&gt;&lt;/ElementType&gt;&lt;/Schema&gt;&lt;个人信息 xmlns="x-schema:#Schema1" 姓名="98" 学号="7" 手机号="135" 邮箱="shangxisen@" 性别="男        " 家乡="山东        "/&gt;&lt;个人信息 xmlns="x-schema:#Schema1" 姓名="课件" 学号="11" 手机号="135" 邮箱="liuyonyzhen@" 性别="男        " 家乡="山东        "/&gt;&lt;个人信息 xmlns="x-schema:#Schema1" 姓名="健康" 学号="18" 手机号="135" 邮箱="linzhimin@" 性别="男        " 家乡="福建        "/&gt;&lt;个人信息 xmlns="x-schema:#Schema1" 姓名="过会" 学号="23" 手机号="135" 邮箱="moxwose@" 性别="男        " 家乡="贵州        "/&gt;</XML_F52E2B61-18A1-11d1-B105-00805F49916B>
求高手赐教!
5 回复
#2
冰镇柠檬汁儿2010-09-02 10:08
这样写应该是没什么问题的,只要程序能读出来就可以了,按照你的代码,应该是不能调整文件的输出格式的,如果想有个格式,可以考虑用文件读写的方式,逐条记录写入,这样用dataset读取的时候也不会有问题。
#3
saitor2010-09-02 10:36
System.xml.System.Linq.xml这两个库都可以操作xml.
#4
dwmax2010-09-07 14:33
Response.ContentType = ("text/xml;charset=UTF-8");
System.Text.StringBuilder sb = new System.Text.StringBuilder();
BLL.OneoffBounty bll = new BLL.OneoffBounty();
sb.AppendLine("<?xml version=\"1.0\" encoding=\"gb2312\" standalone=\"yes\" ?>");
sb.AppendLine(bll.GetHortation(idcard).GetXml().ToString());        //返回的是一个dataset集合,在dataset集合中有一个getxml()的方法。
Response.Write(sb.ToString());

#5
gupiao1752010-09-07 14:44
.NET区今天也没什么人啊,看来还是写C语言的好,人气特强!

楼主可以试着在字段后行加入特殊字符? 如&nbsp;<br/>之类的,强行换行后,不知道这样的在.NET里是否有效果,反正ASP是肯定可以的,我自己试过,保存的XML文件非常工整!
#6
冰镇柠檬汁儿2010-09-07 21:51
楼上的解决方法很新颖
1