1

以下の XML および XPath コードを使用して結果が得られないのはなぜですか?

これは実際には PowerShellですが、このオンライン ツールでも試してみましたが、何も出力されませんでした。

私は完全に何かを見落としていると思います!

[xml] $xml = @"
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup Label="ProjectConfigurations">
    <ProjectConfiguration Include="Debug|AnyCPU">
      <Configuration>Debug</Configuration>
      <Platform>AnyCPU</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|ARM">
      <Configuration>Debug</Configuration>
      <Platform>ARM</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|x64">
      <Configuration>Debug</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|x86">
      <Configuration>Debug</Configuration>
      <Platform>x86</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|AnyCPU">
      <Configuration>Release</Configuration>
      <Platform>AnyCPU</Platform>
    </ProjectConfiguration>
  </ItemGroup>
</Project>
"@;

Select-Xml "//ItemGroup" $xml | % {
    Write-Host $_.Node.GetType();
}
4

2 に答える 2

1

これは、デフォルトの名前空間が原因です。

試してみてください//*[local-name()='ItemGroup']

また/*/*[local-name()='ItemGroup']

また/*/*

これらの 3 つすべてが返されItemGroupます。

于 2012-11-06T20:56:56.070 に答える
0

名前空間のプレフィックスがある場合は、次のこともできます。

//prefix:ItemGroup
于 2012-11-06T21:10:19.583 に答える