本帖最后由 qiuqiu505 于 2010-03-01 09:58:58 编辑

解决方案 »

  1.   

    能否说的详细点?我的xml的层是不确定的,就是说可能panel上还会有panel
      

  2.   

    首先声明一个
    XmlDocument doc = new XmlDocument();
    然后加载,如果是从文件加载就用Load,如果是从字符串加载就用LoadXml
    如 doc.Load(@"C:\aaa.xml");
    然后 XmlNode nodForm = doc.SelectSingleNode("//Object [name=Form1]"); 可以获得Form1节点
    需要获得Form1内的节点的话就继续 nodForm.SelectSingleNode或者nodForm.SelectNodes好了,具体用法可以参加MSDN
    需要获得节点中的属性值可以用nodForm.Attributes["属性名"]来检索.
      

  3.   

    我xml的层次不确定,所以不可能总是用SelectSingleNode的方式去遍历它的下级节点,然后Form的名字也不确定。我想知道的各个控件之间的层次关系以及他们的大小、位置、颜色等。不能用linq to xml的方法来解析,我目前的开发环境不支持。
      

  4.   

    你想找出所有指定类型的节点的话就 SelectNodes("//Object[type=你要找的类型属性名称]")
    你想一层一层的找的话就用递归
    FindNode(XmlNode node)
    {
      // 在这里处理当前节点,即node.比如你可以取出它的Type属性看看是类型的,可以获取它的name属性看看它是什么名字等等
          // 继续处理其子节点
      for (int i = 0;i < node.ChildNodes.Count; i++)
        FindNode(node.ChildNodes[i]);
    }
      

  5.   

    用Linq,.net2.0也支持,不过要自己配置,具体查baidu