Exemplo n.º 1
0
        /// <summary>
        /// 根据标签名获取所有同标签名的子元素标签
        /// </summary>
        /// <param name="tagName"></param>
        /// <returns></returns>
        public virtual ElementCollection <Tag> GetChildTagsByTagName(string tagName)
        {
            if (string.IsNullOrEmpty(tagName))
            {
                throw new ArgumentNullException("tagName");
            }

            ElementCollection <Tag> tags = new ElementCollection <Tag>();

            //搜索当前元素下的子元素
            foreach (Element item in this.InnerElements)
            {
                if (item is Tag)
                {
                    Tag tag = (Tag)item;
                    if (tagName.Equals(tag.TagName, StringComparison.InvariantCultureIgnoreCase))
                    {
                        tags.Add(tag);
                    }

                    //处理其下子元素
                    tags.AddRange(tag.GetChildTagsByTagName(tagName));
                }
            }
            return(tags);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 根据标签名获取所有同标签名的子元素标签
        /// </summary>
        /// <param name="tagName"></param>
        /// <returns></returns>
        public override ElementCollection <Tag> GetChildTagsByTagName(string tagName)
        {
            ElementCollection <Tag> tags = base.GetChildTagsByTagName(tagName);

            //处理ElseIf标签列表
            foreach (IfConditionTag elseif in this.ElseIfs)
            {
                if (tagName.Equals(elseif.TagName, StringComparison.InvariantCultureIgnoreCase))
                {
                    tags.Add(elseif);
                }
                tags.AddRange(elseif.GetChildTagsByTagName(tagName));
            }
            //处理Else标签
            if (this.Else != null)
            {
                if (tagName.Equals(this.Else.TagName, StringComparison.InvariantCultureIgnoreCase))
                {
                    tags.Add(this.Else);
                }
                tags.AddRange(this.Else.GetChildTagsByTagName(tagName));
            }
            return(tags);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 根据标签名获取所有同标签名的子元素标签
        /// </summary>
        /// <param name="tagName"></param>
        /// <returns></returns>
        public override ElementCollection <Tag> GetChildTagsByTagName(string tagName)
        {
            ElementCollection <Tag> tags = base.GetChildTagsByTagName(tagName);

            //处理ForEachTag标签
            if (this.Else != null)
            {
                if (tagName.Equals(this.Else.TagName, StringComparison.InvariantCultureIgnoreCase))
                {
                    tags.Add(this.Else);
                }
                tags.AddRange(this.Else.GetChildTagsByTagName(tagName));
            }
            return(tags);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 获取所有具有同名称的模板列表.
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public ElementCollection <Template> GetChildTemplatesByName(string name)
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException("name");
            }

            ElementCollection <Template> items = new ElementCollection <Template>();

            foreach (Template template in TagContainer.ChildTemplates)
            {
                if (name.Equals(template.Name, StringComparison.InvariantCultureIgnoreCase))
                {
                    items.Add(template);
                }
                items.AddRange(template.GetChildTemplatesByName(name));
            }
            return(items);
        }