Bagikan melalui


Tugas XmlPeek

Menampilkan nilai seperti yang ditentukan oleh Kueri XPath dari file XML.

Parameter

Tabel berikut ini menjelaskan parameter tugas XmlPeek.

Parameter Deskripsi
Namespaces Parameter String opsional.

Menentukan namespace layanan untuk awalan kueri XPath.
Query Parameter String opsional.

Menentukan kueri XPath.
Result Parameter output ITaskItem[] opsional.

Berisi hasil yang ditampilkan oleh tugas ini.
XmlContent Parameter String opsional.

Tentukan input XML sebagai string.
XmlInputPath Parameter ITaskItem opsional.

Menentukan input XML sebagai jalur file.

Keterangan

Selain memiliki parameter yang tercantum dalam tabel, tugas ini mewarisi parameter dari kelas TaskExtension, yang mewarisi dari kelas Task. Untuk daftar parameter tambahan ini dan deskripsinya, lihat kelas dasar TaskExtension.

Contoh

Berikut adalah sampel file XML settings.config untuk dibaca:

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

Dalam contoh ini, jika Anda ingin membaca value, gunakan kode seperti berikut:

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

Dengan kumpulan nama XML, Anda menggunakan parameter Namespaces, seperti dalam contoh berikut. Dengan file XML input 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>

Dan Target berikut ini yang ditentukan dalam file proyek:

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

Output meliputi hal-hal berikut dari target 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>

Baca juga