コード例 #1
0
        public string GetRemainingContent()
        {
            string builderContent = ElementContentBuilder.GetBuilderContent(this.builder, this.xmlSpace, this.whitespaceSignificant, this.leadingWhitespace, WhitespaceTrimming.Remove);

            this.Clear();
            if (builderContent != null)
            {
                ++this.siblingCount;
            }
            return(builderContent);
        }
コード例 #2
0
        public string GetContentBeforeSibling(WhitespaceTrimming whitespaceSurroundingSibling)
        {
            string builderContent = ElementContentBuilder.GetBuilderContent(this.builder, this.xmlSpace, this.whitespaceSignificant, this.leadingWhitespace, whitespaceSurroundingSibling);

            this.Clear();
            if (builderContent != null)
            {
                ++this.siblingCount;
            }
            ++this.siblingCount;
            this.leadingWhitespace = whitespaceSurroundingSibling;
            return(builderContent);
        }
コード例 #3
0
        private static string GetBuilderContent(StringBuilder builder, XmlSpace xmlSpace, WhitespaceSignificant whitespaceSignificant, WhitespaceTrimming leadingWhitespace, WhitespaceTrimming trailingWhitespace)
        {
            int length1 = builder.Length;

            if (length1 > 0)
            {
                if (xmlSpace == XmlSpace.Preserve)
                {
                    if (whitespaceSignificant == WhitespaceSignificant.Significant || ElementContentBuilder.ContainsNonWhitespace(builder))
                    {
                        return(builder.ToString());
                    }
                }
                else
                {
                    char[] chArray = new char[length1];
                    int    length2 = 0;
                    int    num     = -1;
                    for (int index = 0; index < length1; ++index)
                    {
                        char c = builder[index];
                        if (!Scanner.IsXmlWhitespace(c))
                        {
                            if (index > num + 1 && (length2 > 0 || leadingWhitespace == WhitespaceTrimming.Include))
                            {
                                chArray[length2++] = ' ';
                            }
                            chArray[length2++] = c;
                            num = index;
                        }
                    }
                    if (length1 > num + 1 && trailingWhitespace == WhitespaceTrimming.Include && (length2 > 0 || whitespaceSignificant == WhitespaceSignificant.Significant && leadingWhitespace == WhitespaceTrimming.Include))
                    {
                        chArray[length2++] = ' ';
                    }
                    if (length2 > 0)
                    {
                        return(new string(chArray, 0, length2));
                    }
                }
            }
            return((string)null);
        }