当前位置:编程学习 > C#/ASP.NET >>

XML怎么查找父节点下的子节点,绑定在tree上

<?xml version="1.0" encoding="utf-8" ?> 
<TreeNode>
<module name="仓库管理" ID="1">

<submodule name="现场收料" ID="1_1" ParentId="1">

<disColumn>材料明细,出库记录,点验收录,附件列表,操作日志</disColumn>

<ColumnID>btnMaterialDetail,btnTraceOut,btnTraceExam,btnFiles,btnshowLog</ColumnID>

<IsVisible>1,1,1,1,1</IsVisible>

</submodule>

<submodule name="现场发料" ID="1_2" ParentId="1">

<disColumn>材料明细,出库记录,点验收录,附件列表,操作日志</disColumn>

<ColumnID>btnMaterialDetail,btnTraceOut,btnTraceExam,btnFiles,btnshowLog</ColumnID>

<IsVisible>1,1,1,1,1</IsVisible>

</submodule>

</module>
</TreeNode>


这是我的XML ..我要找到 module name="仓库管理" 下的 submodule 中的name   --------------------编程问答-------------------- --------------------编程问答-------------------- 根节点下就是modal,然后查找属性name为你的条件的,然后再遍历他下面的子节点,看xmldocument帮助 --------------------编程问答-------------------- 我有很多节点..我现在只是配置了一个..

查找二级节点的时候我用绝对定位
XmlNodeList nodelist = Doc.SelectNodes(@"/TreeNode/module[@name='"+ChildrenNode.Text+"' and @ID='"+ChildrenNode.Tag+"']/submodule");


可是程序一直报     元素列表已更改。枚举操作未能继续。 --------------------编程问答--------------------

<?xml version="1.0" encoding="utf-8" ?>
<Root url="Index.aspx" name="日报系统总览"  describe="日报系统">
  <Parent url="Default.aspx" name="任务管理"  describe="任务管理" >   
    <Child url="MyWork.aspx" name="我的工作台"  describe="我的工作台" />
    <Child url="OverWork.aspx" name="以完成的任务"  describe="以完成的任务" />
    <Child url="dailyPaper.aspx" name="日报"  describe="日报" />
    <Child url="weekly.aspx" name="周报"  describe="周报" />
  </Parent>
 
</Root>





using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Left : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            XmlDataSource XmlComputer = new XmlDataSource();    //建立XmlDataSource实例
            XmlComputer.ID = "ComputerProducts";
            XmlComputer.DataFile = "XMLFile.xml";    //指定XmlDataSource来源为XML文件    
            TreeView1.DataSource = XmlComputer;    //指定xml数据

            //或是您可以用下列方式声明
            //指定TreeView的数据源为XmlComputer
            //TreeView1.DataSourceID = XmlComputer.UniqueID;        
            //Page.Controls.Add(XmlComputer);

            //建立根节点
            TreeNodeBinding RootBinding = new TreeNodeBinding();
            RootBinding.DataMember = "Root";    //指定RootBinding数据成员为Root节点
            RootBinding.NavigateUrlField = "url";    //指定RootBinding的NavigateUrl为url
            RootBinding.TextField = "name";        //指定TextField为name
            RootBinding.ToolTipField = "describe";    //指定ToolTipField为describe
            RootBinding.Target = "mainframe";
            //将RootBinding加入DataBindings之中
            TreeView1.DataBindings.Add(RootBinding);

            //建立父节点
            TreeNodeBinding ParentBinding = new TreeNodeBinding();
            ParentBinding.DataMember = "Parent";
            ParentBinding.NavigateUrlField = "url";
            ParentBinding.TextField = "name";
            ParentBinding.ToolTipField = "describe";
            ParentBinding.Target = "mainframe";
          
            TreeView1.DataBindings.Add(ParentBinding);

            //建立子节点(叶节点)
            TreeNodeBinding ChildBinding = new TreeNodeBinding();
            ChildBinding.DataMember = "Child";
            ChildBinding.NavigateUrlField = "url";
            ChildBinding.TextField = "name";
            ChildBinding.ToolTipField = "describe";
            ChildBinding.Target = "mainframe";
            TreeView1.DataBindings.Add(ChildBinding);

            //Page.FindControl("Form1").Controls.Add(TreeView1);

            this.TreeView1.DataBind();    //TreeView进行数据绑定            
        }
    } 
}











http://download.csdn.net/source/1421706

--------------------编程问答-------------------- 忘了说了..这是vs2003  和 第三方tree控件
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,