powershell
  • xpath
  • powershell-v4.0
  • 2016-03-28 15 views 1 likes 
    1

    私はオンラインで見た例にもかかわらず、PowerShellの属性値でXPath検索を実行することはできないようです。PowerShellの属性値に対するXPathの検索

    [xml]$xml = '<a><b><c foo="bar"></c></b></a>' 
    $xml | select-xml -xpath //c[@foo] # This returns a node 
    $xml | select-xml -xpath //c[@foo='bar'] # This does not 
    

    私はこれほど単純ではありませんでした。 :-)これをどのように機能させるには?

    答えて

    1

    あなたはXPathを引用した場合、それは正常に動作します:

    [xml]$xml = '<a><b><c foo="bar"></c></b></a>' 
    $xml | select-xml -xpath "//c[@foo='bar']" 
    

    これはおそらく@ is the splat operator$fooという名前の(非existant)変数をスプラットしようとしています。

    実際、この説明は間違っています。明らかに、一重引用符のためです。

    あなたはこれをしようとした場合:

    Write-Host //c[@foo='bar'] 
    

    あなたが出力されていることがわかります:

    //c[@foo=bar] 
    

    これが理由PowerShellは文字列を連結する方法であるようです。

    関連する問題