XmlPoke и уникальные узлы

Я пытаюсь использовать xmlpoke задачу обновить Файл Проекта VS (который является XML). В корне Проекта существует несколько узлов PropertyGroup, я пытаюсь выбрать первый. XML похож на это

 <Project>
    <PropertyGroup>
    </PropertyGroup>
    <PropertyGroup>
    </PropertyGroup>
    <PropertyGroup>
    </PropertyGroup>
 </Project>

Я использую xpath //Project/PropertyGroup[1] для получения первого PropertyGroup но я получаю ошибку: “Групповой xpath, данный//Project/PropertyGroup[1]”.

править: извините, я не думал, что это имело значение (но это делает), Проект имеет пространство имен. Я поместил корректный XML с корректным xmlpoke как ответ для любых будущих искателей.

5
задан abatishchev 28 September 2014 в 18:35
поделиться

1 ответ

Хорошо, я слишком упростил приведенный выше фрагмент 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>

Для справки тег проекта выглядит так:

  <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
9
ответ дан 14 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: