各位朋友们好!麻烦大家帮帮忙! 先谢谢了
我正在做个meun导航栏要从数据库的三张表(分别为总栏,大栏,小栏,三个栏目表)里取出URL要传的ID 和
栏目的名称来写入XML文件里
从网上整了段代码 改了又改 实在是没头绪了 只写出了总栏的以下代码循环不会写,蒙了!!!public XmlDataDocument doc;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
doc = new XmlDataDocument(); doc.Load(Server.MapPath("XMLFile.xml"));//加载XML;
List<PutColumn> list = (List<PutColumn>)PutColumnManager.GetAllPut();//获取了总栏的ID
和Name 集合
List<BigColumn> list2 = (List<BigColumn>)BigColumnManager.GetAllBigColumn();//获取了
大栏的ID和Name 集合
List<SmallColumn> list3 = (List<SmallColumn>)SmallColumnManager.GetAllSmallColumn
();//获取了小栏的ID和Name 集合
foreach (PutColumn pc in list)
{
XmlNode root = doc.SelectSingleNode("Newdataset");//查找节点
XmlElement xe1 = doc.CreateElement("Table");//添加一个节点,这个就是主菜单项
xe1.SetAttribute("name", pc.PutName.Trim());//添加属性
xe1.SetAttribute("url", "PutPage.aspx?putId=" + pc.Id.ToString());//同上
root.AppendChild(xe1);//把主菜单放在最强的节点中
}
// XmlElement xe2 = doc.CreateElement("son");//继续添加节点,这个是子菜单
// xe2.SetAttribute("name", TextBox2.Text.Trim());
// xe2.SetAttribute("url", TextBox4.Text.Trim());
// XmlElement xe3 = doc.CreateElement("aaa");
// xe3.SetAttribute("name", TextBox5.Text.Trim());
// xe3.SetAttribute("url", TextBox6.Text.Trim());
// xe2.AppendChild(xe3);
// xe1.AppendChild(xe2);//把子菜单放进主菜单中
doc.Save(Server.MapPath("XMLFile.xml"));
}以下为XML文件需要的效果
<?xml version="1.0" encoding="utf-8"?>
<Newdataset>
<Table name="总栏" url="Page.aspx?id=1" />
<son name="大栏" url="Page1.aspx?id=1" >
<sm name="小栏" url="Page2.aspx?id=1" />
</son>
<son name="大栏" url="Page1.aspx?id=2" >
<sm name="小栏" url="Page2.aspx?id=2" />
</son>
</Table>
<Table name="总栏2" url="Page.aspx?id=2" />
<son name="大栏2" url="Page1.aspx?id=3" >
<sm name="小栏2" url="Page2.aspx?id=3" />
</son>
<son name="大栏2" url="Page1.aspx?id=4" >
<sm name="小栏2" url="Page2.aspx?id=4" />
</son>
</Table>
<Table name="总栏3" url="Page.aspx?id=3" />
<son name="大栏3" url="Page1.aspx?id=5" >
<sm name="小栏3" url="Page2.aspx?id=5" />
</son>
<son name="大栏3" url="Page1.aspx?id=6" >
<sm name="小栏3" url="Page2.aspx?id=6" />
</son>
</Table>
</Newdataset>各位高手请帮帮忙~真的郁闷了!能一次性写入就行了,麻烦大家了 其实最终就是想实现动态添加修改删除menu导航栏中的选项,每次操作数据库,然后每次操作完重写下XML文件,menu重读就行了.
这是我已知的方法了,可是~~~~脑子转不过来了~~如果哪位朋友知道更好的办法来话请指点下! 最好是提供代码
我正在做个meun导航栏要从数据库的三张表(分别为总栏,大栏,小栏,三个栏目表)里取出URL要传的ID 和
栏目的名称来写入XML文件里
从网上整了段代码 改了又改 实在是没头绪了 只写出了总栏的以下代码循环不会写,蒙了!!!public XmlDataDocument doc;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
doc = new XmlDataDocument(); doc.Load(Server.MapPath("XMLFile.xml"));//加载XML;
List<PutColumn> list = (List<PutColumn>)PutColumnManager.GetAllPut();//获取了总栏的ID
和Name 集合
List<BigColumn> list2 = (List<BigColumn>)BigColumnManager.GetAllBigColumn();//获取了
大栏的ID和Name 集合
List<SmallColumn> list3 = (List<SmallColumn>)SmallColumnManager.GetAllSmallColumn
();//获取了小栏的ID和Name 集合
foreach (PutColumn pc in list)
{
XmlNode root = doc.SelectSingleNode("Newdataset");//查找节点
XmlElement xe1 = doc.CreateElement("Table");//添加一个节点,这个就是主菜单项
xe1.SetAttribute("name", pc.PutName.Trim());//添加属性
xe1.SetAttribute("url", "PutPage.aspx?putId=" + pc.Id.ToString());//同上
root.AppendChild(xe1);//把主菜单放在最强的节点中
}
// XmlElement xe2 = doc.CreateElement("son");//继续添加节点,这个是子菜单
// xe2.SetAttribute("name", TextBox2.Text.Trim());
// xe2.SetAttribute("url", TextBox4.Text.Trim());
// XmlElement xe3 = doc.CreateElement("aaa");
// xe3.SetAttribute("name", TextBox5.Text.Trim());
// xe3.SetAttribute("url", TextBox6.Text.Trim());
// xe2.AppendChild(xe3);
// xe1.AppendChild(xe2);//把子菜单放进主菜单中
doc.Save(Server.MapPath("XMLFile.xml"));
}以下为XML文件需要的效果
<?xml version="1.0" encoding="utf-8"?>
<Newdataset>
<Table name="总栏" url="Page.aspx?id=1" />
<son name="大栏" url="Page1.aspx?id=1" >
<sm name="小栏" url="Page2.aspx?id=1" />
</son>
<son name="大栏" url="Page1.aspx?id=2" >
<sm name="小栏" url="Page2.aspx?id=2" />
</son>
</Table>
<Table name="总栏2" url="Page.aspx?id=2" />
<son name="大栏2" url="Page1.aspx?id=3" >
<sm name="小栏2" url="Page2.aspx?id=3" />
</son>
<son name="大栏2" url="Page1.aspx?id=4" >
<sm name="小栏2" url="Page2.aspx?id=4" />
</son>
</Table>
<Table name="总栏3" url="Page.aspx?id=3" />
<son name="大栏3" url="Page1.aspx?id=5" >
<sm name="小栏3" url="Page2.aspx?id=5" />
</son>
<son name="大栏3" url="Page1.aspx?id=6" >
<sm name="小栏3" url="Page2.aspx?id=6" />
</son>
</Table>
</Newdataset>各位高手请帮帮忙~真的郁闷了!能一次性写入就行了,麻烦大家了 其实最终就是想实现动态添加修改删除menu导航栏中的选项,每次操作数据库,然后每次操作完重写下XML文件,menu重读就行了.
这是我已知的方法了,可是~~~~脑子转不过来了~~如果哪位朋友知道更好的办法来话请指点下! 最好是提供代码
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNode xn = doc.SelectSingleNode(node);
if (element.Equals(""))
{
if (!attribute.Equals(""))
{
XmlElement xe = (XmlElement)xn;
xe.SetAttribute(attribute, value);
}
}
else
{
XmlElement xe = doc.CreateElement(element);
if (attribute.Equals(""))
{
xe.InnerText = value;
}
else
{
xe.SetAttribute(attribute, value);
}
xn.AppendChild(xe);
}
doc.Save(path);
}
catch { }
}
或循环添加
http://topic.csdn.net/u/20100405/18/7a2ac7db-fd5b-4032-8175-1160165821b8.html