NAnt
![]() ![]() ![]() |
v0.91 |
Replaces text in an XML file at the location specified by an XPath expression.
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.
Attribute | Type | Description | Required |
---|---|---|---|
file | file | The name of the file that contains the XML document that is going to be poked. | True |
value | string | The value that replaces the contents of the selected nodes. | True |
xpath | string | The XPath expression used to select which nodes are to be modified. | True |
preserveWhitespace | bool | Namespace definitions to resolve prefixes in the XPath expression. | 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 |
Represents an XML namespace.
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 |
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>