帮忙看一下一个从SQL数据库中读取数据生成XML文件的问题
饶荣 2006-01-10 11:44:37 //获取子节点
public void getXmlNode(int pid, ref XmlNode xmlnode, ref XmlDocument xmldoc)
{
int index = 1;
string connStr = ConfigurationSettings.AppSettings["connStr"];
SqlConnection conn = new SqlConnection(connStr);
string sql = "select * from gClsList where pid=" + pid + " order by orderid";
SqlCommand comm = new SqlCommand(sql, conn);
conn.Open();
SqlDataReader rs = comm.ExecuteReader();
while(rs.Read())
{
//加入另外一个元素
XmlElement xmlelem = xmldoc.CreateElement("","node","");
XmlText xmltext = xmldoc.CreateTextNode(rs["clsName"].ToString()) ;
xmlelem.AppendChild(xmltext);
xmlnode.AppendChild(xmlelem);
XmlNode tempNode = xmlnode.ChildNodes.Item(index);
getXmlNode(Convert.ToInt32(rs["id"].ToString()), ref tempNode, ref xmldoc);
index++;
}
conn.Close();
conn.Dispose();
}
//获取根结点并返回XML文件流
public XmlDocument saveXmlDoc(int pid)
{
//声明创建XML文档
XmlDocument xmldoc = new XmlDocument();
XmlNode xmlnode ;
XmlElement xmlelem ;
XmlText xmltext ;
//加入XML的声明段落
xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration,"","");
xmldoc.AppendChild(xmlnode);
//加入一个主根元素
xmlelem = xmldoc.CreateElement("","root","");
xmltext = xmldoc.CreateTextNode("金海洋国际企业机构");
xmlelem.AppendChild(xmltext);
xmldoc.AppendChild(xmlelem);
string connStr = ConfigurationSettings.AppSettings["connStr"];
SqlConnection conn = new SqlConnection(connStr);
string sql = "select * from gClsList where pid=" + pid + " order by orderid";
SqlCommand comm = new SqlCommand(sql, conn);
conn.Open();
SqlDataReader rs = comm.ExecuteReader();
int index = 1;
while(rs.Read())
{
//加入一个根元素
XmlElement xmlelem2 = xmldoc.CreateElement("","class","");
XmlText xmltext2 = xmldoc.CreateTextNode(rs["clsName"].ToString()) ;
xmlelem2.AppendChild(xmltext2);
XmlNode tempNode = xmldoc.ChildNodes.Item(index);
tempNode.AppendChild(xmlelem2);
getXmlNode(Convert.ToInt32(rs["id"].ToString()), ref tempNode, ref xmldoc);
index++;
}
conn.Close();
conn.Dispose();
//保存创建好的XML文档
return xmldoc;
}