Xmlpoke и уникальные узлы
Вопрос
Я пытаюсь использовать задачу XMLPoke для обновления файла проекта VS (который является XML). В корне проекта есть несколько узлов свойств групп, я пытаюсь выбрать первый. XML выглядит так
<Project>
<PropertyGroup>
</PropertyGroup>
<PropertyGroup>
</PropertyGroup>
<PropertyGroup>
</PropertyGroup>
</Project>
Я использую XPath //Project/PropertyGroup[1]
Чтобы получить первую не свойственную группу, но я получаю ошибку: «Уникальный XPath Endite // Project / PropertyGroup [1]».
Редактировать: Извините, я не думал, что это имело значение (но он делает), проект имеет пространство имен. Я положил правильный XML с правильным XMLPoke в качестве ответа для любых будущих поисковиков.
Решение
Хорошо, я упростил фрагмент XML выше слишком много - думаю, кто-то подумал бы, что если бы у меня не было. Ответ заключается в том, что со времен проекта есть пространство имен, он должен быть таким
<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">