Soledad Pano's Blog

Just Technical Stuff

Problem with NAnt's xmlpoke task

This post was originally published at http://solepano.blogspot.com

There's an issue when trying to replace some part of an xml file that is under a default namespace using NAnt’s xmlpoke task. It happened to me the other day when trying to replace the version attribute in the following wix file:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi">
<Product Name="MyProduct" Id="847A8D24-0F98-4b9f-AEA0-070ABD49F86C" Language="1033" Codepage="1252" Version="1.0.0" Manufacturer="MyCompany">
......
</Product>
</Wix>

Because of the namespace definition in the Wix element, calling xmlpoke simple as
<xmlpoke file="${wix.file}" xpath="/Wix/Product/@Version" value="${build.new.version}"/>
does not work.

What it does work is the following use of the task:

<xmlpoke file="${wix.file}" xpath="/wx:Wix/wx:Product/@Version" value="${build.version}">
<namespaces>
<namespace prefix="wx" uri="http://schemas.microsoft.com/wix/2003/01/wi" />
</namespaces>
</xmlpoke>

Posted: Nov 07 2006, 03:26 PM by spano | with 1 comment(s)
Filed under:

Comments

byron said:

OMG, you are a lifesaver!  I've been cursing xmlpoke since yesterday because I'm pretty sure there's no problem in my xpath.  It was the namespace that I missed! Thank you!

# May 14, 2009 11:58 PM
Leave a Comment

(required) 

(required) 

(optional)

(required)