Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt die Werte wie von der XPath-Abfrage angegeben aus einer XML-Datei zurück
Parameter
In der folgenden Tabelle werden die Parameter der XmlPeek -Aufgabe beschrieben.
| Parameter | Beschreibung |
|---|---|
Namespaces |
Optionaler String-Parameter.Gibt die Namespaces für die Präfixe der XPath-Abfrage an |
Query |
Optionaler String-Parameter.Gibt die XPath-Abfrage an |
Result |
Optionaler ITaskItem[] -Ausgabeparameter.Enthält die Ergebnisse, die von dieser Aufgabe zurückgegeben werden |
XmlContent |
Optionaler String-Parameter.Gibt die XML-Eingabe als Zeichenfolge an |
XmlInputPath |
Optionaler ITaskItem-Parameter. Gibt die XML-Eingabe als Dateipfad an |
Hinweise
Zusätzlich zu den in der Tabelle aufgeführten Parametern erbt dieser Task Parameter von der TaskExtension-Klasse, die selbst von der Task-Klasse erbt. Eine Liste mit diesen zusätzlichen Parametern und ihren Beschreibungen finden Sie unter TaskExtension-Basisklasse.
Beispiel
Das folgende Beispiel zeigt die XML-Datei settings.config:
<appSettings>
<add key="ProjectFolder" value="S1" />
</appSettings>
Verwenden Sie in diesem Beispiel zum Lesen von value etwa folgenden Code:
<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>
Bei XML-Namespaces verwenden Sie den Parameter Namespaces, wie im folgenden Beispiel gezeigt. Mit der XML-Eingabedatei 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>
Und dem folgenden Target in einer Projektdatei definiert:
<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>
Die Ausgabe enthält Folgendes aus dem Ziel von 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>