asp.net把sql中的数据如何生成指定格式的xml

我用下面代码:stringstuXml=myDs.GetXml();stringstuFileName=System.Web.HttpContext.Current.Se... 我用下面代码:
string stuXml = myDs.GetXml();
string stuFileName = System.Web.HttpContext.Current.Server.MapPath("../xmlFile/stu.xml");
StreamWriter sr = File.CreateText(stuFileName);
sr.WriteLine(stuXml);
sr.Close();
生成了这种格式的xml:
<markers>
<marker>
<lat>39.427770</lat>
<lng>116.144841</lng>
</marker>
<marker>
<lat>39.413320</lat>
<lng>116.125604</lng>
</marker>
<marker>
<lat>39.433480</lat>
<lng>116.139062</lng>
</marker>
</markers>
但是,却被能被函数调用,只能用下面的格式调用:
<markers>
<marker lat="39.427770" lng="116.144841"/>
<marker lat="39.413320" lng="116.125604"/>
<marker lat="39.433480" lng="116.139062"/>
<marker lat="39.445427" lng="116.162307"/>
</markers>
请问各位网友,我怎么修改代码才能生成第二种格式的xml,即数据都在一个</>里,谢谢各位网友了!
其中数据库字符串为 sqlStr = "select 照片,姓名,班级,学号,性别,联系方式,家庭住址,lat,lng from stuBaseInfo where 班级='" + ClassName + "'";
下面是代码片段:
myDa.Fill(myDs);
string strFilePath=Server.MapPath("../xmlFiles/stu.xml");
myDs.WriteXml(strFilePath);
System.Xml.XmlDocument myXmlDoc=new System.Xml.XmlDocument();
myXmlDoc.Load(strFilePath);
System.Xml.XmlElement myXmlEle=myXmlDoc.DocumentElement;
foreach(System.Xml.XmlNode node in myXmlEle.ChildNodes)
{
Response.Write("照片: " + node["照片"].InnerText + ",姓名: " + node["姓名"].InnerText + ",班级: " + node["班级"].InnerText + ",学号: " + node["学号"].InnerText + ",性别: " + node["性别"].InnerText + ",联系方式: " + node["联系方式"].InnerText + ",家庭住址: " + node["家庭住址"].InnerText + ",lat: " + node["lat"].InnerText + ", lng: " + node["lng"].InnerText + "<br />");
}
可是提示“未将对象引用设置到对象的实例。”运行失败,请问什么原因?
展开
 我来答
kid83
2009-08-26 · TA获得超过2081个赞
知道大有可为答主
回答量:1818
采纳率:0%
帮助的人:1971万
展开全部
不能被函数调用是什么意思?你的函数呢?函数不写出来怎么帮你看?
我这个是假设你的到了XmlFiles/StuElements.xml,你不是已经通过File.CreateText(stuFileName)创建了该文件了吗?
我建议你直接DataSet1.WriteXml(filepath);这种方式直接把DataSet生成xml文件
string strFilePath = Server.MapPath ( "XmlFiles/StuElements.xml" );
System.Xml.XmlDocument xmlDocument = new System.Xml.XmlDocument ( );

xmlDocument.Load ( strFilePath );

System.Xml.XmlElement xmlElement = xmlDocument.DocumentElement;

foreach ( System.Xml.XmlNode node in xmlElement.ChildNodes )
{
Response.Write ( "lat: " + node [ "lat" ].InnerText + ", lng: " + node [ "lng" ].InnerText + "<br />" );
}

//修改后的

System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("Data Source=.;Initial Catalog=Pubs;Integrated Security=True;");
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter("Select * from Authors", conn);

System.Data.DataSet ds = new System.Data.DataSet();
conn.Open();

da.Fill(ds, "Authors");
System.Data.DataTable dt;
dt = ds.Tables["Authors"];

foreach (System.Data.DataColumn dc in dt.Columns)
{
dc.ColumnMapping = System.Data.MappingType.Attribute;
}

string filePath = Server.MapPath("XmlFiles/Stu.xml");
ds.WriteXml(filePath);

System.Xml.XmlDocument xmlDocument = new System.Xml.XmlDocument();
xmlDocument.Load(filePath);

System.Xml.XmlNodeList Authors= xmlDocument.GetElementsByTagName("Author");
foreach (System.Xml.XmlNode node in Authors)
{
Response.Write("FirstName:" + node.Attributes["FirstName"].Value + "<br />");
}
lizhangyong420
2009-08-25 · TA获得超过206个赞
知道答主
回答量:299
采纳率:0%
帮助的人:195万
展开全部
XmlElement如果不熟悉的话操作起来可能是有点麻烦,如果不会做的话可以使用StreamReader和StreamWriter来操作,可以把XMl文件就直接当做文本文件操作,想怎么改怎么改。但是格式要争取,免得读取xml的时候出现问题。

我曾经就是直接用这种方法做的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式