XmlPoke - задача

Задает в XML-файле значения, указанные в запросе XPath.

Параметры

В следующей таблице приводятся параметры задачи XmlPoke.

Параметр Описание
Namespaces Необязательный параметр String.

Задает пространства имен для префиксов запроса XPath. Namespaces — это фрагмент кода XML, состоящий из элементов Namespace с атрибутами Prefix и Uri. Атрибут Prefix указывает префикс для привязки к пространству имен, указанному в атрибуте Uri. Не используйте пустой Prefix.
Query Необязательный параметр String.

Указывает запрос XPath.
Value Обязательный параметр ITaskItem .

Задает значение, вставляемое в указанный путь.
XmlInputPath Необязательный параметр ITaskItem.

Указывает входные данные XML в виде пути к файлу.

Замечания

Помимо параметров, перечисленных в таблице, эта задача наследует параметры от класса TaskExtension, который сам является производным от класса Task. Список этих дополнительных параметров и их описания см. в статье Базовый класс TaskExtension.

Пример

Ниже приведен файл sample.xml для изменения:

<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
         xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
         xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" >
<Identity Name="Sample.Product " Publisher="CN=1234" Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="456" PhonePublisherId="0" />
</Package>

В этом примере, если вы хотите изменить /Package/mp:PhoneIdentity/PhoneProductId, используйте

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Namespace>
        <Namespace Prefix="dn" Uri="http://schemas.microsoft.com/appx/manifest/foundation/windows10" />
        <Namespace Prefix="mp" Uri="http://schemas.microsoft.com/appx/2014/phone/manifest" />
        <Namespace Prefix="uap" Uri="http://schemas.microsoft.com/appx/manifest/uap/windows10" />
    </Namespace>
</PropertyGroup>

<Target Name="Poke">
  <XmlPoke
    XmlInputPath="Sample.xml"
    Value="MyId"
    Query="/dn:Package/mp:PhoneIdentity/@PhoneProductId"
    Namespaces="$(Namespace)"/>
</Target>
</Project>

dn используется здесь в качестве искусственного префикса пространства имен для пространства имен по умолчанию.

См. также