C#用递归生成xml文件代码

    技术2022-05-20  50

    using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.IO;using System.Xml;using BLL;/// <summary>/// Xml 的摘要说明/// </summary>public class Xml{ public Xml() { // // TODO: 在此处添加构造函数逻辑 // } /// <summary> /// 根据用户id创建用户xml /// </summary> /// <param name="userId"></param> public static void CreateXmlByUserId(int userId) { if (File.Exists("Xml/Tree.xml")) { File.Delete("Xml/Tree.xml"); } XmlDocument xd = new XmlDocument(); XmlDeclaration xdl = xd.CreateXmlDeclaration("1.0", "utf-8", null); xd.AppendChild(xdl);  XmlElement xe = xd.CreateElement("TREENODES");// xe.SetAttribute("text", "TreeNodes Root"); xe.SetAttribute("url", "javascript:void(-1)"); xmlCreate(xe, xd,userId); xd.AppendChild(xe); xd.Save("Xml/Tree.xml"); } /// <summary> /// 获取父级 /// </summary> /// <param name="xe"></param> /// <param name="xd"></param> private static void xmlCreate(XmlElement xe, XmlDocument xd, int userId) { DataTable dt = FunctionManager.GetDataTableByUserId(userId); DataRow[] rows = dt.Select("parentId=0"); foreach (DataRow row in rows) { XmlElement xee = xd.CreateElement("treenode"); xee.SetAttribute("text", row["functionName"].ToString()); xee.SetAttribute("url", "javascript:void(" + row["id"] + ")"); int parentId = Convert.ToInt32(row["id"]); XmlElementCreate(dt, parentId, xee, xd); xe.AppendChild(xee); } } /// <summary> /// 根据父级获取子级 /// </summary> /// <param name="dt">数据集</param> /// <param name="pId">父级id</param> /// <param name="xee">xmlElement对象</param> /// <param name="xd">xml文档对象</param> private static void XmlElementCreate(DataTable dt, int pId, XmlElement xee, XmlDocument xd) { DataRow[] rows = dt.Select("parentId=" + pId); foreach (DataRow row in rows) { XmlElement xElement = xd.CreateElement("treenode"); xElement.SetAttribute("text", row["functionName"].ToString()); xElement.SetAttribute("url", "javascript:void(" + row["id"] + ")"); int parentId = Convert.ToInt32(row["id"]); XmlElementCreate(dt, parentId, xElement, xd); xee.AppendChild(xElement); } }}


    最新回复(0)