VB.NET - 在 XML 字符串中查找字符串

VB.NET - Find a string in a XML String

我正在开发一个将 InfoPath XML 文件读入 .NET 表单的项目。我正在尝试从 href 获取 .xsn 版本以确定我应该显示哪个版本的 InfoPath 表单。由于 XML 文件中只有 1 个 .xsn 字符串,我可以使用它,但我在解析文件名时遇到了问题。

http://servername/foldername/forms/fileNameV100.xsn

这里是一个如何解析文件名的例子。您可以使用这些技术来解析版本。附加说明在代码的注释中。

Private Function ParseXsnFileName(ByVal strTarget As String) As String

    Dim strResult As String = String.Empty

    'Get the location of where the .xsn extension starts.
    Dim intExtensionLocation As Integer = strTarget.IndexOf(".xsn")

    If intExtensionLocation >= 0 Then

        'Now we will initiate a loop that iterates back character by character until we find 
        'the forward slash of the URL that preceedes the filename.
        Dim bolStartFound As Boolean = False
        Dim intCursor As Integer = intExtensionLocation

        Do Until intCursor = 0 OrElse bolStartFound

            If strTarget.Substring(intCursor, 1) = "/" Then

                'Setting this to true exist the loop.
                bolStartFound = True

            End If

            intCursor -= 1

        Loop

        If bolStartFound Then

            'We found all of the pieces we need to parse out the filename.

            'Add 2 because of the "intCursor -= 1" and because we don't want the / in the filename.
            Dim intStartLocation As Integer = intCursor + 2

            'Add 4 to StartLocation because we want the extension.
            'Subtract intStartLocation from intExtensionLocation to get the length.
            strResult = strTarget.Substring(intStartLocation, (intExtensionLocation - (intStartLocation + 4)))

        End If

    End If

    Return strResult

End Function

用法示例:

    Dim strParseThis As String = "http://servername/foldername/forms/fileNameV100.xsn"

    Dim strFileName As String = ParseXsnFileName(strParseThis)