Поделиться через


Задача XmlPoke

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

Параметры

В следующей таблице описаны параметры задачи 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 здесь используется в качестве префикса искусственного пространства имен для пространства имен по умолчанию; его можно использовать всякий раз, когда в целевом XML-файле нет указанного префикса.

См. также