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); }
private void HandleEmptyTag(SaxEvent value, StartElementEvent start) { _stack.Push(value); }
public IEnumerable <ProjectStructureItem> ComposeElement(StartElementEvent startElement, IReadOnlyCollection <SaxEvent> content) { return(ProjectStructureItem.Build(startElement, content)); }
public ContentHolder(StartElementEvent startSaxEvent, ContentHolder parent) { _content = new List <SaxEvent>(); Parent = parent; StartSaxEvent = startSaxEvent; }
public ContentHolder(StartElementEvent startSaxEvent) : this(startSaxEvent, null) { }