Hi everyone !

I'm still new to camel and I'm trying to use the enrich methode and the
aggregation strategy. 
What's I'm trying to do is merging 2 xml files that look alike, like *this*
: 

 <?xml version="1.0" encoding="UTF-8"?>
<numbers>
        <month name ="Janvier">
                <ca>12</ca>
                <margin>2</margin>
        </month>
</numbers>

and *that* : 
 <?xml version="1.0" encoding="UTF-8"?>
<numbers>
        <month name ="Janvier">
                <ca>14</ca>
                <margin>5</margin>
        </month>
</numbers>

And obtain one merged where the numbers are added. 

I managed to concatenate them, so I think enriching is okay with me, but I
can't seem be able to adapt my aggregationStrategy.

Here's *my route* : 
                
public class XmlRoute extends RouteBuilder
{
        public void configure() throws Exception 
        {               
                AggregationStrategy aggregationStrategy = new
myAggregationStrategy();        
                from ("file:src/data/xmlTest")
                        
.pollEnrich("file:src/data/xmlToAppend?fileName=just.xml",
aggregationStrategy)
                        .to("file:src/data/xmlResult");
        }
}

Here's my* aggregation Strategy* :
public class myAggregationStrategy implements AggregationStrategy {

        public Exchange aggregate(Exchange original, Exchange resource) {
                int originalBody =
original.getIn().xpath("/numbers/month/ca/text()").getBody(Integer.class);
        int resourceResponse =
resource.getIn().xpath("/numbers/month/ca/text()").getBody(Integer.class);
        int mergeResult = originalBody + resourceResponse; // combine
original body and resource response
        if (original.getPattern().isOutCapable()) {
            original.getOut().setBody(mergeResult);
        } else {
            original.getIn().setBody(mergeResult);
        }
        return original;
        }

}


of course it doesn't work because I tried to put xpath in the middle of
nothing inside the exchange. 

What I would like to know is if I can express my xpath inside my aggregation
strategy ? If not, do I have to do it inside my routes ?

Thank you for your help. 



--
View this message in context: 
http://camel.465427.n5.nabble.com/Using-xpath-inside-an-exchange-tp5753868.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to