Finally I realized that library XmlTask from Oops is nothing more than a XSLT engine, and it uses the same mechanics, so I found (thanks to your example) the right syntax to get what I wanted using that library:
<xmltask preservetype="true" report="true" source="${workDir}/house_original.xml" dest="${workDir}/house_new.xml"> <replace path="/house/room[tapestry='red']/floor/text()" withText="terracotta"/> </xmltask> This code does the job correctly. For those who have the same problem, using "@" refers to an attribute, and without "@" refers to an internal tag. Thanks a lot! best regards Jo On Mon, Nov 22, 2010 at 3:11 PM, Ludwig, Michael <michael.lud...@delphi-mb.de> wrote: >> In your particular use case, you can use xslt. You just need >> to write an xsl file doing the change that you would like. > > Here's the XSL file you need: > > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:template match="room[tapestry='red']/floor"> > <xsl:copy>terracotta</xsl:copy> > </xsl:template> > > <xsl:template match="@*|node()"> > <xsl:copy> > <xsl:apply-templates select="@*|node()"/> > </xsl:copy> > </xsl:template> > > </xsl:stylesheet> > > Best, > > Michael > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@ant.apache.org > For additional commands, e-mail: user-h...@ant.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@ant.apache.org For additional commands, e-mail: user-h...@ant.apache.org