Aracılığıyla paylaş


XmlPeek görevi

XML dosyasından XPath Sorgusu tarafından belirtilen değerleri döndürür.

Parametreler

Aşağıdaki tabloda görevin parametreleri XmlPeek açıklanmaktadır.

Parametre Tanım
Namespaces İsteğe bağlı String parametre.

XPath sorgu ön ekleri için ad alanlarını belirtir.
Query İsteğe bağlı String parametre.

XPath sorgusunu belirtir.
Result İsteğe bağlı ITaskItem[] çıkış parametresi.

Bu görev tarafından döndürülen sonuçları içerir.
XmlContent İsteğe bağlı String parametre.

XML girişini dize olarak belirtir.
XmlInputPath İsteğe bağlı ITaskItem parametre.

XML girişini dosya yolu olarak belirtir.

Açıklamalar

Tabloda listelenen parametrelerin bulunmasına ek olarak, bu görev kendi sınıfından TaskExtension devralan sınıfından Task parametreleri devralır. Bu ek parametrelerin ve açıklamalarının listesi için bkz . TaskExtension temel sınıfı.

Örnek

Okunacak örnek XML dosyası settings.config aşağıda verilmiştir:

<appSettings>
  <add key="ProjectFolder" value="S1" />
</appSettings>

Bu örnekte, okumak valueistiyorsanız aşağıdaki gibi bir kod kullanın:

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

XML ad alanlarıyla, aşağıdaki örnekte olduğu gibi parametresini kullanırsınız Namespaces . Giriş XML dosyasıyla 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>

Ve bir proje dosyasında aşağıdakiler Target tanımlanmıştır:

  <Target Name="TestPeek" BeforeTargets="Build">
    <!-- Find the Name attributes -->
    <XmlPeek XmlInputPath="XMLFile1.xml"
             Query="//s:variable/@Name"
             Namespaces="&lt;Namespace Prefix='s' Uri='http://nsurl' /&gt;">
      <Output TaskParameter="Result" ItemName="value1" />
    </XmlPeek>
    <Message Text="@(value1)"/>
    <!-- Find 'variable' nodes (XPath query includes ".") -->
    <XmlPeek XmlInputPath="XMLFile1.xml"
             Query="//s:variable/."
             Namespaces="&lt;Namespace Prefix='s' Uri='http://nsurl' /&gt;">
      <Output TaskParameter="Result" ItemName="value2" />
    </XmlPeek>
    <Message Text="@(value2)"/>
  </Target>

Çıkış, hedeften TestPeek aşağıdakileri içerir:

  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>

Ayrıca bkz.