/// <summary> /// Gets the dialog id at the specified line. /// </summary> /// <param name="index">Line numbers start from zero.</param> /// <returns>The dialog id found at the specified line; /// <see langword="null"/> if no dialog found.</returns> public static string GetDialogId(XmlTextReader reader, int line) { // Add one to line since XmlTextReader line numbers start from one. ++line; DialogStartElement dialogStartElement = null; using (reader) { object dialogElementName = reader.NameTable.Add("Dialog"); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: if (IsElementMatch(dialogElementName, reader.LocalName)) { if (line < reader.LineNumber) { return(null); } else if (line == reader.LineNumber) { return(GetIdFromCurrentNode(reader)); } else if (reader.IsStartElement()) { dialogStartElement = new DialogStartElement(reader.LineNumber, GetIdFromCurrentNode(reader)); } } break; case XmlNodeType.EndElement: if (IsElementMatch(dialogElementName, reader.LocalName)) { if (line > dialogStartElement.Line && line <= reader.LineNumber) { return(dialogStartElement.Id); } } break; } } } return(null); }
/// <summary> /// Gets the dialog id at the specified line. /// </summary> /// <param name="index">Line numbers start from one.</param> public string GetDialogId(int line) { DialogStartElement dialogStartElement = null; using (reader) { object dialogElementName = reader.NameTable.Add("Dialog"); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: if (IsElementMatch(dialogElementName, reader.LocalName)) { if (line < reader.LineNumber) { return(null); } else if (line == reader.LineNumber) { return(GetIdAttributeValueFromCurrentNode()); } else if (reader.IsStartElement()) { dialogStartElement = new DialogStartElement(reader.LineNumber, GetIdAttributeValueFromCurrentNode()); } } break; case XmlNodeType.EndElement: if (IsElementMatch(dialogElementName, reader.LocalName)) { if (line > dialogStartElement.Line && line <= reader.LineNumber) { return(dialogStartElement.Id); } } break; } } } return(null); }
/// <summary> /// Gets the dialog id at the specified line. /// </summary> /// <param name="index">Line numbers start from zero.</param> /// <returns>The dialog id found at the specified line; /// <see langword="null"/> if no dialog found.</returns> public static string GetDialogId(XmlTextReader reader, int line) { // Add one to line since XmlTextReader line numbers start from one. ++line; DialogStartElement dialogStartElement = null; using (reader) { object dialogElementName = reader.NameTable.Add("Dialog"); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: if (IsElementMatch(dialogElementName, reader.LocalName)) { if (line < reader.LineNumber) { return null; } else if (line == reader.LineNumber) { return GetIdFromCurrentNode(reader); } else if (reader.IsStartElement()) { dialogStartElement = new DialogStartElement(reader.LineNumber, GetIdFromCurrentNode(reader)); } } break; case XmlNodeType.EndElement: if (IsElementMatch(dialogElementName, reader.LocalName)) { if (line > dialogStartElement.Line && line <= reader.LineNumber) { return dialogStartElement.Id; } } break; } } } return null; }
/// <summary> /// Gets the dialog id at the specified line. /// </summary> /// <param name="index">Line numbers start from one.</param> public string GetDialogId(int line) { DialogStartElement dialogStartElement = null; using (reader) { object dialogElementName = reader.NameTable.Add("Dialog"); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: if (IsElementMatch(dialogElementName, reader.LocalName)) { if (line < reader.LineNumber) { return null; } else if (line == reader.LineNumber) { return GetIdAttributeValueFromCurrentNode(); } else if (reader.IsStartElement()) { dialogStartElement = new DialogStartElement(reader.LineNumber, GetIdAttributeValueFromCurrentNode()); } } break; case XmlNodeType.EndElement: if (IsElementMatch(dialogElementName, reader.LocalName)) { if (line > dialogStartElement.Line && line <= reader.LineNumber) { return dialogStartElement.Id; } } break; } } } return null; }