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 />");
}
可是提示“未将对象引用设置到对象的实例。”运行失败,请问什么原因? 展开
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 />");
}
可是提示“未将对象引用设置到对象的实例。”运行失败,请问什么原因? 展开
展开全部
不能被函数调用是什么意思?你的函数呢?函数不写出来怎么帮你看?
我这个是假设你的到了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 />");
}
我这个是假设你的到了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 />");
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询