Example #1
0
        private Unit HandleStartElement(XmlTextReader reader, IObserver <SaxEvent> observer, string[] path)
        {
            var attributes = new Dictionary <string, string>();
            var strUri     = reader.NamespaceURI;
            var strName    = reader.Name;
            var isClosed   = reader.IsEmptyElement;

            if (reader.HasAttributes)
            {
                for (var i = 0; i < reader.AttributeCount; i++)
                {
                    reader.MoveToAttribute(i);
                    attributes.Add(reader.Name, reader.Value);
                }
            }
            var startElementEvent = new StartElementEvent(strUri, strName, isClosed, new ReadOnlyDictionary <string, string>(attributes), path);

            _contentHolder = new ContentHolder(startElementEvent, _contentHolder);
            observer.OnNext(startElementEvent);

            return(Unit.Default);
        }
Example #2
0
 private void HandleEmptyTag(SaxEvent value, StartElementEvent start)
 {
     _stack.Push(value);
 }
Example #3
0
 public IEnumerable <ProjectStructureItem> ComposeElement(StartElementEvent startElement, IReadOnlyCollection <SaxEvent> content)
 {
     return(ProjectStructureItem.Build(startElement, content));
 }
Example #4
0
 public ContentHolder(StartElementEvent startSaxEvent, ContentHolder parent)
 {
     _content      = new List <SaxEvent>();
     Parent        = parent;
     StartSaxEvent = startSaxEvent;
 }
Example #5
0
 public ContentHolder(StartElementEvent startSaxEvent)
     : this(startSaxEvent, null)
 {
 }