You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by "Rebhan, Gilbert" <Gi...@huk-coburg.de> on 2007/06/12 16:49:35 UTC

xmltask, xpath related question

Hi,

with a given xmlfile as input for my buildscript =

<?xml version="1.0"?>

<referenzen>
    <projekt name="safir">
        <modul name="SAFIR Base Application" label="r_1_5_13_23_thi"/>
    </projekt>
    <projekt name="kuba">
        <modul name="KUBA" label="r_1_0_0_0_za_rc26"/>
        <modul name="PONE" label="r_1_0_0_0_za_rc26"/>
    </projekt>
</referenzen>


i need to call a cvscheckout macrodef for every modul found in the xml;
the cvsroot varies in the projekt name attribute.

I have a working script =

<?xml version="1.0"?>

<project name="bla" default="main" basedir=".">

  <!-- // Taskdefs -->
  <!-- Import XMLTask -->
  <taskdef name="xmltask"
classname="com.oopsconsultancy.xmltask.ant.XmlTask" />
  <!-- Taskdefs // -->

  <!-- // Import MacroDefs -->
  <import file="common_macros.xml" optional="false" />
  <!-- Import MacroDefs // -->

  <target name="init">
    <xmltask source="Reference.xml">
      <call path="//projekt" target="precvscheckout" >
        <param name="projektname" path="@name"/>
      </call>
    </xmltask>
  </target>

  <target name="precvscheckout">
    <echo>... in precvscheckout</echo>

    <xmltask source="Reference.xml">
      <call path="//projekt[@name='${projektname}']/modul"
target="cvscheckout" >
        <param name="mname" path="@name"/>
        <param name="mlabel" path="@label"/>
      </call>
    </xmltask>
  </target>

  <target name="cvscheckout">
    <echo>
  ============== cvscheckout ================  
      Projektname = ${projektname}
      Modul       = ${mname}
      Label       = ${mlabel}
  ============== cvscheckout ================  
    </echo>

    <cvscheckout
cvsroot=":pserver:${user.name}@cvsprod:d:/cvsrepos/${projektname}"
           modul="'${mname}'"
           label="${mlabel}"
           path="Y:/tempwork"
    />
  </target>

  <target name="main" depends="init"/>
</project>


so my script has one xmltask calling another xmltask for every projekt,
the
second xmltask is called for every modul.

is there a more elegant, shorter  approach with xpath ?


Regards, Gilbert

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org