private void scanDocumentFor(string projectFile, Action <XmlReader, XmlPath> handler) { if (!File.Exists(projectFile)) { return; } using (var reader = XmlReader.Create(projectFile)) { var path = new XmlPath(); while (reader.Read()) { if (popEndElement(reader, path)) { continue; } if (reader.Name.Length == 0) { continue; } path.Push(reader.Name); handler.Invoke(reader, path); if (reader.IsEmptyElement) { path.Pop(); } } } }
private bool popEndElement(XmlReader reader, XmlPath path) { if (!reader.IsStartElement() && !reader.HasValue) { path.Pop(); return(true); } return(false); }
private bool popEndElement(XmlReader reader, XmlPath path) { if (!reader.IsStartElement() && !reader.HasValue) { path.Pop(); return true; } return false; }
private void scanDocumentFor(string projectFile, Action<XmlReader, XmlPath> handler) { if (!File.Exists(projectFile)) return; using (var reader = XmlReader.Create(projectFile)) { var path = new XmlPath(); while (reader.Read()) { if (popEndElement(reader, path)) continue; if (reader.Name.Length == 0) continue; path.Push(reader.Name); handler.Invoke(reader, path); if (reader.IsEmptyElement) path.Pop(); } } }