# <xmlpeek>

[This is preliminary documentation and subject to change.]

Extracts text from an XML file at the location specified by an XPath expression.

If the XPath expression specifies multiple nodes the node index is used to determine which of the nodes' text is returned.

### Parameters

Attribute | Type | Description | Required
--- | --- | --- | ---
file | file | The name of the file that contains the XML document that is going to be peeked at. | True
property | string | The property that receives the text representation of the XML inside the node returned from the XPath expression. | True
xpath | string | The XPath expression used to select which node to read. | True
nodeindex | int | The index of the node that gets its text returned when the query returns multiple nodes. | False
failonerror | bool | Determines if task failure stops the build, or is just reported. The default is true. | False
if | bool | If true then the task will be executed; otherwise, skipped. The default is true. | False
unless | bool | Opposite of `if`. If false then the task will be executed; otherwise, skipped. The default is false. | False
verbose | bool | Determines whether the task should report detailed build log messages. The default is false. | False

### Nested Elements:

#### <namespaces>

Namespace definitions to resolve prefixes in the XPath expression.

##### <namespace>

Represents an XML namespace.

### Parameters

Attribute | Type | Description | Required
--- | --- | --- | ---
prefix | string | The prefix to associate with the namespace. | True
uri | string | The associated XML namespace URI. | True
if | bool | Indicates if the namespace should be added to the XmlNamespaceManager. If true then the namespace will be added; otherwise, skipped. The default is true. | False
unless | bool | Indicates if the namespace should not be added to the XmlNamespaceManager. list. If false then the parameter will be added; otherwise, skipped. The default is false. | False

##### </namespace>

#### </namespaces>

### Examples

- The example provided assumes that the following XML file (App.config) exists in the current build directory.

                  <?xml version="1.0" encoding="utf-8" ?>
                  <configuration xmlns="http://www.gordic.cz/shared/project-config/v_1.0.0.0">
                      <appSettings>
                          <add key="server" value="testhost.somecompany.com" />
                      </appSettings>
                  </configuration>

- The example will read the server value from the above configuration file.

                  <xmlpeek
                      file="App.config"
                      xpath="/x:configuration/x:appSettings/x:add[@key = 'server']/@value"
                      property="configuration.server">
                      <namespaces>
                          <namespace prefix="x" uri="http://www.gordic.cz/shared/project-config/v_1.0.0.0" />
                      </namespaces>
                  </xmlpeek>

### Requirements

Assembly: NAnt.Core (0.91.3881.0)