Exemplo n.º 1
0
        //============================================================
        // <T>获得所有子节点。</T>
        //
        // @param name 节点名称
        // @param args 属性列表
        // @return 子节点列表
        //============================================================
        public FXmlNodes AllNodes(string name, params string[] args)
        {
            FXmlNodes nodes = new FXmlNodes();

            if (HasNode())
            {
                InnerFindAllNodes(nodes, this, name, args);
            }
            return(nodes);
        }
Exemplo n.º 2
0
 //============================================================
 // <T>查找所有子节点。</T>
 //
 // @param nodes 子节点列表
 // @param node 子节点
 // @param name 节点名称
 // @param args 属性列表
 //============================================================
 protected void InnerFindAllNodes(FXmlNodes nodes, FXmlNode node, string name, params string[] args)
 {
     foreach (FXmlNode child in node.Nodes)
     {
         if (null != child)
         {
             if (child.Equals(name, args))
             {
                 nodes.Push(child);
             }
             if (child.HasNode())
             {
                 InnerFindAllNodes(nodes, child, name, args);
             }
         }
     }
 }
Exemplo n.º 3
0
        //============================================================
        // <T>根据路径,查找节点对象。</T>
        //
        // @param path 路径
        // @param args 属性列表
        // @return 节点对象
        //============================================================
        public FXmlNode FindPath(string path, params string[] args)
        {
            FXmlNode  find   = null;
            FXmlNodes parent = this;

            foreach (string name in path.Split('.'))
            {
                foreach (FXmlNode node in parent)
                {
                    if (node.Equals(name, args))
                    {
                        find = node;
                        break;
                    }
                }
                if ((null != find) && find.HasNode())
                {
                    parent = find.Nodes;
                }
            }
            return(find);
        }