NAnt SDK Documentation - v0.92

XmlPokeTask Class

Replaces text in an XML file at the location specified by an XPath expression.

For a list of all members of this type, see XmlPokeTask Members.

System.Object
   NAnt.Core.Element
      NAnt.Core.Task
         NAnt.Core.Tasks.XmlPokeTask

[Visual Basic]
<TaskName(Name:="xmlpoke")>
Public Class XmlPokeTask
    Inherits Task
[C#]
[TaskName(Name="xmlpoke")]
public class XmlPokeTask : Task

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

The location specified by the XPath expression must exist, it will not create the parent elements for you. However, provided you have a root element you could use a series of the tasks to build the XML file up if necessary.

Example

Change the server setting in the configuration from testhost.somecompany.com to productionhost.somecompany.com.

XML file:

    
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="server" value="testhost.somecompany.com" />
    </appSettings>
</configuration>
    
  

Build fragment:

    
<xmlpoke
    file="App.config"
    xpath="/configuration/appSettings/add[@key = 'server']/@value"
    value="productionhost.somecompany.com" />
    
  

Modify the noNamespaceSchemaLocation in an XML file.

XML file:

    
<?xml version="1.0" encoding="utf-8" ?>
<Commands xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Path Value">
</Commands>
    
  

Build fragment:

    
<xmlpoke file="test.xml" xpath="/Commands/@xsi:noNamespaceSchemaLocation" value="d:\Commands.xsd">
    <namespaces>
        <namespace prefix="xsi" uri="http://www.w3.org/2001/XMLSchema-instance" />
    </namespaces>
</xmlpoke>
    
  

Requirements

Namespace: NAnt.Core.Tasks

Assembly: NAnt.Core (in NAnt.Core.dll)

See Also

XmlPokeTask Members | NAnt.Core.Tasks Namespace