[WebMethod(Description = "[xml格式死板不建议使用]一张学生信息表返回XML格式(dataset转换成stream 再加载到xml)")]
public XmlDocument test()
{
string MyConnStr = ConfigurationManager.AppSettings["testconnStr"];
SqlConnection MyConn = new SqlConnection(MyConnStr);
string MySelectStr = "select Sname, Sage, Ssex from dbo.Student";
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter(MySelectStr, MyConn);
sda.Fill(ds);
Stream s = new MemoryStream();
ds.WriteXml(s);
s.Seek(0, SeekOrigin.Begin);
//转换成XmlDocument对象
XmlDocument xd = new XmlDocument();
XmlDeclaration xmldecl = xd.CreateXmlDeclaration("1.0", "utf-8",null);
xd.AppendChild(xmldecl);
xd.Load(s);
return xd;
}
[WebMethod(Description = "[正规]一张学生信息表DataSet填充XML,通过添加、修改元素、属性、值")]
public XmlDocument xd_StudnentInfo()
{
SqlConnection MyConn = new SqlConnection(ConfigurationManager.AppSettings["testconnStr"]);
string sqlStr = "select Sname, Sage, Ssex from dbo.Student";
//string sqlStr = "SELECT Cid, Cname, parent_id, order_id FROM [boris].[dbo].[ClientApp]";
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlStr, MyConn);
da.Fill(ds);
XmlDocument xd = new XmlDocument();
//加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?>
XmlDeclaration xmldecl = xd.CreateXmlDeclaration("1.0", "utf-8", null);
xd.AppendChild(xmldecl);
//添加根元素
XmlElement xmle = xd.CreateElement("", "StudentInfo", "");
xd.AppendChild(xmle);
//寻找根元素
XmlNode root = xd.SelectSingleNode("StudentInfo");
//判断表中是否有数据,若有则循环读取该表每行记录
if (ds.Tables[0].Rows.Count > 0)
{
for (int nI = 0; nI < ds.Tables[0].Rows.Count; nI++)
{
//添加根元素下的第一层子元素
XmlElement xeRow = xd.CreateElement("Student");
root.AppendChild(xeRow);
//读取该表每列信息
for (int nC = 0; nC < ds.Tables[0].Columns.Count; nC++)
{
//判断改列是否为空,若不为空,则写入xml中
if(ds.Tables[0].Rows[nI][nC].ToString()!=null&&ds.Tables[0].Rows[nI][nC].ToString()!=""&&ds.Tables[0].Rows[nI][nC].ToString()!="“"+"”")
{
//添加属性
XmlElement xmlColumn = xd.CreateElement(ds.Tables[0].Columns[nC].ColumnName.ToString());
//添加属性对应的值
xmlColumn.InnerText = ds.Tables[0].Rows[nI][nC].ToString();
xeRow.AppendChild(xmlColumn);
}
}
}
}
return xd;
}
/* xml格式:
<StudentInfo>
<Student>
<Sname>张三</Sname>
<Sage>14</Sage>
<Ssex>男</Ssex>
</Student>
<Student>
<Sname>李四</Sname>
<Sage>15</Sage>
<Ssex>女</Ssex>
</Student>
<Student>
<Sname>王五</Sname>
<Sage>16</Sage>
<Ssex>男</Ssex>
</Student>
</StudentInfo>
*/