使用 PowerShell Core 7.4.6。
鉴于文件/path/to/file.csproj
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<ProjectReference Include="Path\To\Something.csproj" />
</ItemGroup>
</Project>
我期望以下代码片段ProjectReference
使用内置的 XPathends-with
函数从该文件中选择节点
select-xml -path "/path/to/file.csproj" `
-xpath "/Project/ItemGroup/ProjectReference[ends-with(@Include, 'Something.csproj')]"
但相反,它会产生错误
Select-Xml: Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function.
如果我尝试使用 XPath 函数命名空间明确地确定其范围
select-xml -path "/path/to/file.csproj" `
-xpath "/Project/ItemGroup/ProjectReference[fn:ends-with(@Include, 'Something.csproj')]" `
-namespace @{ "fn" = "http://www.w3.org/2005/xpath-functions" }
我收到了另一个错误
Select-Xml: XsltContext is needed for this query because of an unknown function.
我错过了什么?文档Select-Xml
提到对调用 XPath 函数没有任何限制,因此我认为它们是本机支持的。