求教关于XML的问题
想从数据库中动态读取内容然后自动生成一个XML文件绑定到多选框控件成为多级菜单 是怎么实现的
下面是两个方法
protected string ContentPopList(string _xmlPath,string Poplist)
{
string _Str = "";
try
{
if (!File.Exists(Server.MapPath(_xmlPath))) { PageError("找不到配置文件(" + _xmlPath + ").<li>可能是虚拟目录配置出错.请修改web.config</li>", ""); }
string xmlPath = Server.MapPath(_xmlPath);
FileInfo finfo = new FileInfo(xmlPath);
System.Xml.XmlDocument xdoc = new XmlDocument();
xdoc.Load(xmlPath);
XmlElement root = xdoc.DocumentElement;//获取文档的根
XmlNodeList elemList = root.GetElementsByTagName("popname");//传回指定名称的元素集合,popname是一个字符串,代表找到的元素卷标名称。使用popname "*"传回文件中所有找到的元素。
XmlNodeList elemList1 = root.GetElementsByTagName("popnumber");
for (int i = 0; i < elemList.Count; i++)
{
string CheckSTR = "";
if (Poplist.IndexOf(elemList1[i].InnerXml) !=-1){CheckSTR = " checked";}else{CheckSTR = "";}
_Str += "<label><input value=\"" + elemList1[i].InnerXml + "\"" + CheckSTR + " name=\"PopList\" type=\"checkbox\" /><span onclick=\"getPopCode('" + elemList1[i].InnerXml + "');\" style=\"font-size:10px;\" title=\"权限代码,点击复制权限代码,对FireFox浏览区无效\">(" + elemList1[i].InnerXml + ") </span>" + elemList[i].InnerXml + "</label>\r";
}
}
catch
{
_Str = "配置文件出错:" + _xmlPath + "";
}
return _Str;
}
protected string getRoot(string _xmlPath, string flgs)
{
string _Str = "";
try
{
if (!File.Exists(Server.MapPath(_xmlPath))) { PageError("找不到配置文件(" + _xmlPath + ").<li>可能是虚拟目录配置出错.请修改web.config</li>", ""); }
string xmlPath = Server.MapPath(_xmlPath);
FileInfo finfo = new FileInfo(xmlPath);
System.Xml.XmlDocument xdoc = new XmlDocument();
xdoc.Load(xmlPath);
XmlElement root = xdoc.DocumentElement;
XmlNodeList elemList = root.GetElementsByTagName("popname");
XmlNodeList elemList1 = root.GetElementsByTagName("poplist");
for (int i = 0; i < elemList.Count; i++)
{
if (elemList[i].InnerXml == flgs) { _Str += elemList1[i].InnerXml; }else{continue;}
}
}
catch
{
PageError("配置文件出错:" + _xmlPath + "", "");
}
return _Str;
}