关闭

asp.net2.0 利用Dataset,从数据库导出并生成无限级类别的XML文件

476人阅读 评论(0) 收藏 举报

数据表结构如下:

ID:自增标识ID,
ParentID:父级ID,
ClassName:类别名称

CS代码如下:

 public DataSet ds = new DataSet();
    
public DataTable dt;
    XmlDocument xmlDoc 
= new XmlDocument();

    
protected void Page_Load(object sender, EventArgs e)
    
{
        SqlConnection con 
= new SqlConnection("Data Source=HN;Initial Catalog=yiming;User ID=sa;Password=sa"); 

        SqlDataAdapter ad 
= new SqlDataAdapter("select * from class", con);
        ad.Fill(ds, 
"class");
        dt 
= ds.Tables["class"];
      
        xmlDoc.Load(Server.MapPath(
"~/xml.xml"));
        XmlNode root 
= xmlDoc.SelectSingleNode("Root"); //查找<rootTreenode>
        
//删除初根节点外的所有节点。
        root.RemoveAll();

        DataRow[] drs 
= dt.Select("parentID=0");
        
foreach (DataRow r in drs)
        
{
            XmlElement treenode1 
= (XmlElement)root;

            treenode1.SetAttribute(
"Node_ID", r["ID"].ToString());
            treenode1.SetAttribute(
"Father_ID", r["parentid"].ToString());
            treenode1.SetAttribute(
"NodeName", r["classname"].ToString());

            NodeEach(r[
"id"].ToString(), treenode1);
        }

        xmlDoc.Save(Server.MapPath(
"~/xml.xml"));

        Response.Write(count.ToString());
    }


    
public void NodeEach(string id, XmlNode treenode)
    
{
        DataRow[] drs 
= dt.Select("parentID=" + id);
        
foreach (DataRow r in drs)
        
{
            XmlElement treenode2 
= xmlDoc.CreateElement("treenode"); //创建一个<treenode>节点
            treenode2.SetAttribute("Node_ID", r["ID"].ToString());
            treenode2.SetAttribute(
"Father_ID", r["parentid"].ToString());
            treenode2.SetAttribute(
"NodeName", r["classname"].ToString());
            treenode.AppendChild(treenode2);

            NodeEach(r[
"id"].ToString(), treenode2);
        }


    }
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20058次
    • 积分:62
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:14篇
    • 译文:0篇
    • 评论:2条
    文章分类
    博客/阅读