/// <summary> Visit RawTag </summary> public override void VisitTag(AXmlTag tag) { if (tag.IsStartOrEmptyTag) { sb.Append('<'); sb.Append(tag.Name); foreach(AXmlAttribute attr in tag.Children.OfType<AXmlAttribute>().OrderBy(a => a.Name)) { VisitAttribute(attr); } sb.Append('>'); if (tag.IsEmptyTag) { // Use explicit start-end pair sb.AppendFormat("</{0}>", tag.Name); } } else if (tag.IsEndTag) { sb.AppendFormat("</{0}>", tag.Name); } else if (tag.IsProcessingInstruction) { sb.Append("<?"); sb.Append(tag.Name); foreach(AXmlText text in tag.Children.OfType<AXmlText>()) { sb.Append(text.Value); } if (tag.Children.Count == 0) sb.Append(' '); sb.Append("?>"); } else if (tag.IsCData) { foreach(AXmlText text in tag.Children.OfType<AXmlText>()) { sb.Append(Escape(text.Value)); } } }
/// <summary> Visit RawTag </summary> public virtual void VisitTag(AXmlTag tag) { foreach(AXmlObject child in tag.Children) child.AcceptVisitor(this); }