System.Xml.XmlEventCache.EventsToString C# (CSharp) Méthode

EventsToString() public méthode

Concatenate all element text and atomic value events and return the resulting string.
public EventsToString ( ) : string
Résultat string
        public string EventsToString() {
            StringBuilder bldr;
            XmlEvent[] page;
            int idxPage, idxEvent;
            bool inAttr;

            // Special-case single text node at the top-level
            if (this.singleText != null)
                return this.singleText;

            bldr = new StringBuilder();

            // Loop over set of pages
            inAttr = false;
            for (idxPage = 0; idxPage < this.pages.Count; idxPage++) {
                page = this.pages[idxPage] as XmlEvent[];

                // Loop over events in each page
                for (idxEvent = 0; idxEvent < page.Length; idxEvent++) {
                    switch (page[idxEvent].EventType) {
                        case XmlEventType.Unknown:
                            // No more events
                            Debug.Assert(idxPage + 1 == this.pages.Count);
                            return bldr.ToString();

                        case XmlEventType.String:
                        case XmlEventType.Whitespace:
                        case XmlEventType.Raw:
                        case XmlEventType.CData:
                            // Append text
                            if (!inAttr)
                                bldr.Append(page[idxEvent].String1);
                            break;

                        case XmlEventType.StartAttr:
                            // Don't append text or atomic values if they appear within attributes
                            inAttr = true;
                            break;

                        case XmlEventType.EndAttr:
                            // No longer in an attribute
                            inAttr = false;
                            break;
                    }
                }
            }

            Debug.Assert(false, "Unknown event should be added to end of event sequence.");
            return string.Empty;
        }