Thanks brian for your quick replies and making me understand ...

I shared the whole example , build-configuration.xml , my source and
destination file are the same i.e. test1.xml, build.xml file that has the
xml tasks and error.. Sorry the trouble caused in chopping the content .. i
pasted the whole set so that the problem can be really understood....
I changed as per your inputs .. i added a new node in my test1.xml file --
<init-param>
           <param-name>parameter 1</param-name>
           <param-value>value for parameter 1</param-value>
         </init-param>

and i tried using the copy xml task in build.xml  ---

<target name="repeattask">
    <xmltask source="${weblogic.home.cfgfile}" >
       <copy path="count(/log4j:configuration/init-param)"
property="nooftimes"/>
       </xmltask>
       <echo>Building ${nooftimes}</echo>
           <if name="count" value="0">
             <antcall target="doUnitTests"/>
              <else>
                         <echo>this won't happen</echo>
               </else>
          </if>
    </target>
         <target name="doUnitTests">
         <xmltask source="${weblogic.home.cfgfile}"
dest="${weblogic.home.cfgfile}" failWithoutMatch="true">
        <insert  path="/log4j:configuration/root" position="after" >
                   <![CDATA[ <category name="com.bea.wli.event">
                   <priority value="debug" />
                  <appender-ref ref="RDBMS_EG_LOGFILE_DEBUG"/>
              </category> ]]>
                  </insert>
                  </xmltask>
             </target>

It worked and it didnt execute the doUnitTests.. which looks fine.. But my
concern was to look for the category with a particular  name , if it exists
.. then it shouldnt  write again...

this worked ..??

  <copy path="count(/log4j:configuration/category/[...@name='Category3'])"
property="count"/>



On Fri, Aug 14, 2009 at 1:22 PM, Brian Agnew <br...@oopsconsultancy.com>wrote:

>
>  I'm not sure the below is a *small* example :-) (I have to keep chopping
> the below to stop Sourceforge mailer's complaining). I would cut it down and
> try to determine which particular expression is causing you grief. I've just
> extracted your (count) XPath and ran a quick test and I think that looks
> good.
>
> Note that if you're using xmltask to simply populate a property, you can
> simply specify a source file. You don't need a destination file (XMLTask
> will write out the same doc as it loaded in, which is a bit excessive)
>
> On 14/08/2009 12:07, Adithya V.S.S wrote:
>
> Hi brian,
>  it fails while parsing the count ...xml task
>
>  i am pasting a small example here --
>
>  My build.xml file
> -------------------------------
>  <?xml version="1.0"?>
> <project name="java.net" default="main" basedir=".">
>   <taskdef name="xmltask"
> classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>
>   <taskdef name="if" classname="ise.antelope.tasks.IfTask"/>
>
>   <!-- run all examples -->
>   <target name="main" depends="testprg,repeattask"/>
>  <property name="weblogic.home.cfgfile" value="C:/test1.xml" />
>   <!-- a calling example -->
>     <target name="testprg">
>
>    <xmltask source="build-configuration.xml">
>         <call path="/categoryset/category" target="compile-and-release">
>           <param name="name" path="testname/text()"/>
>             <param name="appender1" path="appender[1]/text()"/>
>               <param name="appender2" path="appender[2]/text()"/>
>               <param name="appender3" path="appender[3]/text()"/>
>         </call>
>       </xmltask>
>     </target>
>
>     <!-- the build target for ex12 -->
>     <target name="compile-and-release">
>       <echo>Building ${name}</echo>
>       <xmltask source="${weblogic.home.cfgfile}"
> dest="${weblogic.home.cfgfile}" failWithoutMatch="true">
>           <insert path="/log4j:configuration/root" position="after">
>               <![CDATA[ <category name="${name}">
>               <priority value="debug" />
>               <appender-ref ref="${appender1}" />
>               <appender-ref ref="${appender2}" />
>               <appender-ref ref="${appender3}" />
>               </category> ]]>
>               </insert>
>     </xmltask>
>
>   </target>
>
>    <target name="repeattask">
>     <xmltask source="${weblogic.home.cfgfile}"
> dest="${weblogic.home.cfgfile}" failWithoutMatch="true">
>        <copy
> path="count(/log4j:configuration/category/[...@name='Category3'])"
> property="count"/>
>        </xmltask>
>        <echo>Building ${count}</echo>
>
>
>        <if name="count" value="0">
>              <antcall target="doUnitTests"/>
>               <else>
>                          <echo>this won't happen</echo>
>                </else>
>           </if>
>     </target>
>
>       <target name="doUnitTests">
>
>            <xmltask source="${weblogic.home.cfgfile}"
> dest="${weblogic.home.cfgfile}" failWithoutMatch="true">
>
>         <insert  path="/log4j:configuration/root" position="after" >
>                    <![CDATA[ <category name="com.bea.wli.event">
>                    <priority value="debug" />
>                   <appender-ref ref="RDBMS_EG_LOGFILE_DEBUG"/>
>               </category> ]]>
>                   </insert>
>                   </xmltask>
>              </target>
>
>   </project>
> ------------------------
>
>  My build-configuration file
> -------------------------
>  <?xml version="1.0"?>
> <categoryset>
> <category testname="testing">
>   <testname>Category1</testname>
>   <appender>development</appender>
>   <appender>systemtest</appender>
>   <appender>production</appender>
>   </category>
> <category testname="test">
>   <testname>Category2</testname>
>   <appender>DEV</appender>
>   <appender>TEST</appender>
>   <appender>PROD</appender>
> </category>
> </categoryset>
> -------------------------------
>
>  my test1.xml
> ---------------------
>
>  <?xml version="1.0" encoding="UTF-8"?>
> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/";
> debug="null" threshold="null">
>   <root>
>     <priority value="fatal"/>
>   </root>
>
>  <category name="com.bea.wli.event">
>                    <priority value="debug"/>
>                   <appender-ref ref="RDBMS_EG_LOGFILE_DEBUG"/>
>               </category>
> <category name="Category3">
>               <priority value="debug"/>
>               <appender-ref ref="UAT"/>
>               <appender-ref ref="${appender2}"/>
>               <appender-ref ref="${appender3}"/>
>               </category>
> <category name="Category2">
>               <priority value="debug"/>
>               <appender-ref ref="DEV"/>
>               <appender-ref ref="TEST"/>
>               <appender-ref ref="PROD"/>
>               </category>
> <category name="Category1">
>               <priority value="debug"/>
>               <appender-ref ref="development"/>
>               <appender-ref ref="systemtest"/>
>               <appender-ref ref="production"/>
>               </category>
>
>
>  </log4j:configuration>
> ------------------------------------
>
>  Is this syntax wrong ?
>
>    <copy path="count(/log4j:configuration/category/[...@name='Category3'])"
> property="count"/>
> as used above...
>
>
>  error is -
> -------------------
>  repeattask:
>   *[xmltask] javax.xml.transform.TransformerException: A location step was
> expected following the '/' or '//' token.*
>   [xmltask]     at
> com.sun.org.apache.xpath.internal.compiler.XPathParser.error(XPathParser.java:602)
>   [xmltask]     at
> com.sun.org.apache.xpath.internal.compiler.XPathParser.RelativeLocationPath(XPathParser.java:1579)
>
>  Thanks.
> adi
>
>
>
> --
> Brian Agnew                  http://www.oopsconsultancy.com
> OOPS Consultancy Ltd
> Tel: +44 (0)7720 397526
> Fax: +44 (0)20 8682 0012
>
>


-- 
Adithya V.S.S
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Xmltask-users mailing list
Xmltask-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xmltask-users

Reply via email to