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 回答