/// <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); }
/// <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); }
/// <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); }
/// <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); }