Try FileName = CustomerPath & "\" & "PageOptimizations for " & PageName & ".xml" xmlReader = New XmlTextReader(FileName) While (xmlReader.Read) Select Case xmlReader.NodeType Case XmlNodeType.EndElement Hierarchy = Hierarchy.Substring(0, InStrRev(Hierarchy, "/") - 1) Case XmlNodeType.Element CurrentElement = xmlReader.Name Hierarchy = Hierarchy & "/" & CurrentElement Try Select Case LCase(Hierarchy) Case "/optimizationdata/header/webpagetitle" CurrentValue = xmlReader.ReadElementString Hierarchy = Hierarchy.Substring(0, InStrRev(Hierarchy, "/") - 1) Case "/optimizationdata/header/webpagetitleoptimized" CurrentValue = xmlReader.ReadElementString Hierarchy = Hierarchy.Substring(0, InStrRev(Hierarchy, "/") - 1) Case "/optimizationdata/suggestion" CheckedValue = xmlReader.GetAttribute("Type") CurrentValue = PrepForHTML(xmlReader.GetAttribute("Text")) End Select Catch ex As Exception 'Error reading data Log(ex.Message, log_Warning, Reflection.MethodBase.GetCurrentMethod().Name.ToString()) End Try If xmlReader.IsEmptyElement = True Then Hierarchy = Hierarchy.Substring(0, InStrRev(Hierarchy, "/") - 1) End If End Select End While xmlReader.Close() Catch ex As Exception 'Error opening XML file, use master file and set defaults Log(ex.Message, log_Warning, Reflection.MethodBase.GetCurrentMethod().Name.ToString()) End Try Public Sub Log(ByVal Message As String, Optional ByVal Level As Integer = log_Verbose, Optional ByVal MethodName As String = "") If Level <> log_Fatal Then If LogLevel = log_None Then Exit Sub End If End If If Level > LogLevel Then Exit Sub End If Dim FileHandle As Integer = FreeFile() Try FileOpen(FileHandle, LogFilename, OpenMode.Input, OpenAccess.Read, OpenShare.Default) FileClose(FileHandle) Catch ex As Exception FileOpen(FileHandle, LogFilename, OpenMode.Output, OpenAccess.Write, OpenShare.Default) PrintLine(FileHandle, "Time Level Method Message") PrintLine(FileHandle, "----------- ----- --------------------------------------------- -----------------------------") FileClose(FileHandle) Log(ex.Message, log_Warning, Reflection.MethodBase.GetCurrentMethod().Name.ToString()) End Try FileOpen(FileHandle, LogFilename, OpenMode.Append, OpenAccess.Write, OpenShare.Shared) PrintLine(FileHandle, Now.ToLongTimeString.PadLeft(11) & " " & Level & " " & VB.Left(MethodName.PadRight(45), 45) & " " & Message) FileClose(FileHandle) End Sub