XmlPeek (tâche)
Retourne des valeurs telles que spécifiées par la requête XPath depuis un fichier XML.
Paramètres
Le tableau ci-dessous décrit les paramètres de la tâche XmlPeek
.
Paramètre | Description |
---|---|
Namespaces |
Paramètre String facultatif.Spécifie les espaces de noms pour les préfixes de requête XPath. |
Query |
Paramètre String facultatif.Spécifie la requête XPath. |
Result |
Paramètre de sortie ITaskItem[] facultatif.Contient les résultats retournés par cette tâche. |
XmlContent |
Paramètre String facultatif.Spécifie l’entrée XML sous forme de chaîne. |
XmlInputPath |
Paramètre ITaskItem facultatif. Spécifie l’entrée XML sous forme de chemin de fichier. |
Notes
En plus des paramètres répertoriés dans le tableau, cette tâche comprend des paramètres qu’elle hérite de la classe TaskExtension, qui elle-même hérite de la classe Task. Pour obtenir la liste de ces paramètres supplémentaires et leurs descriptions, consultez Classe de base TaskExtension.
Exemple
Voici un exemple de fichier XML settings.config
à lire :
<appSettings>
<add key="ProjectFolder" value="S1" />
</appSettings>
Dans cet exemple, si vous souhaitez lire value
, utilisez un code semblable à ce qui suit :
<Target Name="BeforeBuild">
<XmlPeek XmlInputPath="settings.config" Query="appSettings/add[@key='ProjectFolder']/@value">
<Output TaskParameter="Result" ItemName="value" />
</XmlPeek>
<Message Text="Using project folder @(value)." Importance="high" />
<PropertyGroup>
<ProjectFolder>@(value)</ProjectFolder>
</PropertyGroup>
<ItemGroup>
<Compile Include="Projects\$(ProjectFolder)\Controls\Control1.ascx.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
</ItemGroup>
</Target>
Avec les espaces de noms XML, vous utilisez le paramètre Namespaces
, comme dans l’exemple suivant. Avec le fichier XML d’entrée XMLFile1.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<class AccessModifier='public' Name='test' xmlns:s='http://nsurl'>
<s:variable Type='String' Name='a'>This</s:variable>
<s:variable Type='String' Name='b'>is</s:variable>
<s:variable Type='String' Name='c'>Sparta!</s:variable>
<method AccessModifier='public static' Name='GetVal' />
</class>
Et le Target
suivant défini dans un fichier projet :
<Target Name="TestPeek" BeforeTargets="Build">
<!-- Find the Name attributes -->
<XmlPeek XmlInputPath="XMLFile1.xml"
Query="//s:variable/@Name"
Namespaces="<Namespace Prefix='s' Uri='http://nsurl' />">
<Output TaskParameter="Result" ItemName="value1" />
</XmlPeek>
<Message Text="@(value1)"/>
<!-- Find 'variable' nodes (XPath query includes ".") -->
<XmlPeek XmlInputPath="XMLFile1.xml"
Query="//s:variable/."
Namespaces="<Namespace Prefix='s' Uri='http://nsurl' />">
<Output TaskParameter="Result" ItemName="value2" />
</XmlPeek>
<Message Text="@(value2)"/>
</Target>
La sortie inclut les éléments suivants à partir de la cible TestPeek
:
TestPeek output:
a;b;c
<s:variable Type="String" Name="a" xmlns:s="http://nsurl">This</s:variable>;<s:variable Type="String" Name="b" xmlns:s="http://nsurl">is</s:variable>;<s:variable Type="String" Name="c" xmlns:s="http://nsurl">Sparta!</s:variable>