Although the .NET Framework ships with a comprehensive XML library, Sam B's coworkers aren't big fans of it. It's far too fancy, they claim. Instead, they prefer to use StringBuilders, concatenation, and IndexOf(">")-style parsing.

"What on Earth do we need XML-Navigation and Nodes for," they'll often rhetorically say, "come on, it's all just string manipulation!" As it turns out, "XML-Navigation" and "Nodes" certainly do come in handy, especially when one needs to, say, navigate nodes in XML, as they'll often have do.

Fortunately though, they've built an entire library of "XML string" manipulating functions that they use for this exact purpose. Following is ParseText(), one of many of their functions...

''' <summary>
''' Convert text to XML compatible text, so it can be appended
''' instead of using a dom to add a node.
''' </summary>
''' <param name="textIn"></param>
''' <returns>String</returns>
''' <remarks></remarks>
Public Shared Function ParseText(ByVal textIn As String) As String

    Dim dom As XmlDocument = Nothing
    Dim Node As XmlElement = Nothing
    Dim Result As String
    Try
        dom = New XmlDocument
        Node = dom.CreateElement("x")
        Node.InnerText = textIn
        Result = Node.OuterXml
        If Result.Length() > 7 Then
            Return Mid(Result, 4, Result.Length() - 7)
        Else
            Return ""
        End If
    Catch ex As Exception
        Return ex.ToString
    Finally
        dom = Nothing
        Node = Nothing
    End Try
End Function