Tarefa XmlPoke

Define os valores conforme especificado por uma consulta de XPath em um arquivo XML.

Parâmetros

A tabela a seguir descreve os parâmetros da tarefa XmlPoke.

Parâmetro Descrição
Namespaces Parâmetro String opcional.

Especifica os namespaces para prefixos de consulta do XPath. Namespaces é um snippet XML que consiste em elementos Namespace com atributos Prefix e Uri. O atributo Prefix especifica o prefixo para associar ao namespace especificado no atributo Uri. Não use um Prefix vazio.
Query Parâmetro String opcional.

Especifica a consulta do XPath.
Value Parâmetro ITaskItem obrigatório.

Especifica o valor a ser inserido no caminho especificado.
XmlInputPath Parâmetro ITaskItem opcional.

Especifica a entrada XML como um caminho de arquivo.

Comentários

Além de ter os parâmetros listados acima, essa tarefa herda parâmetros da classe TaskExtension, que herda da classe Task. Para obter uma lista desses parâmetros adicionais e suas descrições, confira Classe base TaskExtension.

Exemplo

Aqui está um sample.xml para modificar:

<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>

Neste exemplo, se você quiser modificar /Package/mp:PhoneIdentity/PhoneProductId, use

<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 aqui é usado como um prefixo de namespace artificial para o namespace padrão.

Confira também