Lou*_*nco 5 nant xpath xmlpoke
我正在尝试使用xmlpoke任务来更新VS项目文件(这是XML).在Project根目录中,有多个PropertyGroup节点,我试图选择第一个节点.XML看起来像这样
<Project>
<PropertyGroup>
</PropertyGroup>
<PropertyGroup>
</PropertyGroup>
<PropertyGroup>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
我使用xpath //Project/PropertyGroup[1]来获取第一个PropertyGroup,但是我收到错误:"给定的非唯一xpath // Project/PropertyGroup [1]".
编辑:对不起,我认为它不重要(但确实如此),Project有一个命名空间.我把正确的XML和正确的xmlpoke作为未来搜索者的答案.
好吧,我上面简化了上面的XML片段 - 我想如果我没有,我会想出来的.答案是,由于Project有一个命名空间,它需要是这样的
<xmlpoke file="project_file.csproj" value="v4.0" xpath="//x:Project/x:PropertyGroup[1]/x:TargetFrameworkVersion">
<namespaces>
<namespace prefix="x" uri="http://schemas.microsoft.com/developer/msbuild/2003" />
</namespaces>
</xmlpoke>
Run Code Online (Sandbox Code Playgroud)
作为参考,Project标签如下所示:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
Run Code Online (Sandbox Code Playgroud)