Skip to content

If a property begins with a '#' character, this kills Show-object #2

@1RedOne

Description

@1RedOne

Found a weird one.

[xml]$xml = wget https://patchmypc.net/category/SCUPCatalogChanges/feed
Show-Object $xml

This object has a property which is named '#comments', and Show-object runs into the following error when trying to parse this:

Invoke-Expression : At line:1 char:20

  • $resultObject = $a.#comment
  •                ~
    
    Missing property name after reference operator.
    At C:\Program Files\WindowsPowerShell\Modules\PowerShellCookbook\1.3.3\PowerShellCookbook.psm1:7648 char:9
  •     Invoke-Expression "`$resultObject = $nodePath"
    
  •     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : ParserError: (:) [Invoke-Expression], ParseException
    • FullyQualifiedErrorId : MissingPropertyName,Microsoft.PowerShell.Commands.InvokeExpressionCommand

The variable '$resultObject' cannot be retrieved because it has not been set.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellCookbook\1.3.3\PowerShellCookbook.psm1:7651 char:36

  •     PopulateNode $selectedNode $resultObject
    
  •                                ~~~~~~~~~~~~~
    
    • CategoryInfo : InvalidOperation: (resultObject:String) [], RuntimeException
    • FullyQualifiedErrorId : VariableIsUndefined

The code in question

## Walk through its parents, creating the virtual
        ## PowerShell syntax to access this property.
        $nodePath = GetPathForNode $selectedNode 

        ## Now, invoke that PowerShell syntax to retrieve
        ## the value of the property.
        Invoke-Expression "`$resultObject = $nodePath"

        ## And populate the node with the result object.
        PopulateNode $selectedNode $resultObject

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions