我在这个xml上尝试一个非常基本的XPath (与下面相同),它没有找到任何东西.我正在尝试.NET和这个网站,以及XPaths等//PropertyGroup
,/PropertyGroup
并且//MSBuildCommunityTasksPath
根本不适合我(他们编译但返回零结果).
源XML:
$(MSBuildProjectDirectory)\MSBuild.Community.Tasks\bin\Debug
b w.. 15
您可以在代码中添加名称空间以及所有这些名称空间,但您可以有效地对名称空间进行通配符.尝试以下XPath习语.
//*[local-name()='PropertyGroup'] //*[local-name()='MSBuildCommunityTasksPath']
name()通常也可以,如下所示:
//*[name()='PropertyGroup'] //*[name()='MSBuildCommunityTasksPath']
编辑:命名空间很棒,我并不是说它们并不重要,但是在拼凑原型代码,一次性桌面工具,试验XSLT等等时,通配它们会派上用场.平衡您的方便需求与手头任务的可接受风险.仅供参考,如果需要,您还可以剥离或重新分配名称空间.
您可以在代码中添加名称空间以及所有这些名称空间,但您可以有效地对名称空间进行通配符.尝试以下XPath习语.
//*[local-name()='PropertyGroup'] //*[local-name()='MSBuildCommunityTasksPath']
name()通常也可以,如下所示:
//*[name()='PropertyGroup'] //*[name()='MSBuildCommunityTasksPath']
编辑:命名空间很棒,我并不是说它们并不重要,但是在拼凑原型代码,一次性桌面工具,试验XSLT等等时,通配它们会派上用场.平衡您的方便需求与手头任务的可接受风险.仅供参考,如果需要,您还可以剥离或重新分配名称空间.