Beispiel #1
0
        public string Header(bool outputformat = false)
        {
            if (this.AutoAdded && this.SubElementsCount == 0)
            {
                return(null);
            }

            StringBuilder text = new StringBuilder();

            if (outputformat)
            {
                text.Append('\t', this.Depth);
            }
            if (this.ElementType == TextElementType.XMLTag)
            {
                text.Append(this.BaseEvulator.LeftTag.ToString() + "?" + this.ElemName + HTMLUTIL.ToAttribute(this.ElemAttr) + "?" + this.BaseEvulator.RightTag.ToString());
            }
            if (this.ElementType == TextElementType.Parameter)
            {
                text.Append(this.BaseEvulator.LeftTag.ToString() + this.BaseEvulator.ParamChar.ToString() + this.ElemName + HTMLUTIL.ToAttribute(this.ElemAttr) + this.BaseEvulator.RightTag.ToString());
            }
            else if (this.ElementType == TextElementType.ElementNode)
            {
                StringBuilder additional = new StringBuilder();
                if (!PhpFuctions.empty(this.TagAttrib))
                {
                    additional.Append('=' + this.TagAttrib);
                }
                text.Append(this.BaseEvulator.LeftTag.ToString() + this.ElemName + additional.ToString() + ((this.NoAttrib) ? ' ' + this.Value : HTMLUTIL.ToAttribute(this.ElemAttr)));
                if (this.DirectClosed)
                {
                    text.Append(" /" + this.BaseEvulator.RightTag.ToString());
                }
                else if (this.AutoClosed)
                {
                    text.Append(this.BaseEvulator.RightTag);
                }
                else
                {
                    text.Append(this.BaseEvulator.RightTag);
                }
            }
            else if (this.ElementType == TextElementType.CDATASection)
            {
                text.Append(this.BaseEvulator.LeftTag.ToString() + "![CDATA[" + this.Value + "]]" + this.BaseEvulator.RightTag.ToString());
            }
            else if (this.ElementType == TextElementType.CommentNode)
            {
                text.Append(this.BaseEvulator.LeftTag.ToString() + "--" + this.Value + "--" + this.BaseEvulator.RightTag.ToString());
            }
            if (outputformat && this.FirstChild?.ElemName != "#text")
            {
                text.Append("\r\n");
            }
            return(text.ToString());
        }
Beispiel #2
0
        public string Outer(bool outputformat = false)
        {
            if (this.ElemName == "#document")
            {
                return(this.Inner());
            }
            if (this.ElemName == "#text")
            {
                return(this.value);
            }
            if (this.ElementType == TextElementType.CommentNode)
            {
                return(this.BaseEvulator.LeftTag.ToString() + "--" + this.Value + "--" + this.BaseEvulator.RightTag.ToString());
            }
            StringBuilder text       = new StringBuilder();
            StringBuilder additional = new StringBuilder();

            if (!PhpFuctions.empty(this.TagAttrib))
            {
                additional.Append("=" + this.TagAttrib);
            }
            if (this.ElementType == TextElementType.Parameter)
            {
                text.Append(this.BaseEvulator.LeftTag.ToString() + this.BaseEvulator.ParamChar.ToString() + this.ElemName + HTMLUTIL.ToAttribute(this.ElemAttr) + this.BaseEvulator.RightTag.ToString());
            }
            else
            {
                if (this.AutoAdded)
                {
                    if (this.SubElementsCount == 0)
                    {
                        return(string.Empty);
                    }
                }
                text.Append(this.BaseEvulator.LeftTag.ToString() + this.ElemName + additional.ToString() + ((this.NoAttrib && this.ElementType == TextElementType.ElementNode) ? ' ' + this.Value : HTMLUTIL.ToAttribute(this.ElemAttr)));
                if (this.DirectClosed)
                {
                    text.Append(" /" + this.BaseEvulator.RightTag);
                }
                else if (this.AutoClosed)
                {
                    text.Append(this.BaseEvulator.RightTag);
                }
                else
                {
                    text.Append(this.BaseEvulator.RightTag);
                    text.Append(this.Inner(outputformat));
                    var eName = this.ElemName;
                    if (!PhpFuctions.empty(this.AliasName))
                    {
                        eName = this.AliasName;
                    }
                    text.Append(this.BaseEvulator.LeftTag + '/' + eName + this.BaseEvulator.RightTag.ToString());
                }
            }
            return(text.ToString());
        }