This is actually just a wrapper for the [text()=’value’] XPATH attribute.  As I said in a previous post, this blog is my own knowledge base.  When I need this, and I’m sure I will, I’ll remember writing this entry, search my blog, and there it is!

This will be used in a subsequent post about getting the hashed credentials string out of an RDG file.

function Select-ElementByText
    param (

        if (!$Path)
            Write-Warning "$($MyInvocation.MyCommand.Name) -Path not specified.  Stopping.";
            break __outOfScript;
        } # if (!$Path)

        if (!(Test-Path -Path $Path))
            Write-Warning "$($MyInvocation.MyCommand.Name) -Path '$Path' not found. Stopping.";
            break __outOfScript;
        } # if (!(Test-Path -Path $Path))

        if (!($xml = (Get-Content $Path) -as [xml]))
            Write-Warning "$($MyInvocation.MyCommand.Name) -Path '$Path' cannot be parsed as XML.  Stopping.";
            break __outOfScript;
        } # if (!($xml = (Get-Content $Path) -as [xml]))

    } # begin

        foreach ($myName in $Name)
        } # foreach ($myName in $Name)

    # process

} # function Select-ElementByText