When using XPath you should always mind namespaces. If your XML have a namespace, then the XPath expression must have that namespace bound as well.
On Wed, Jul 20, 2011 at 10:18 PM, dunnlow <dunn...@yahoo.com> wrote: > I'd like to read XML files that will have some number of parameters defined > for a bean and ultimately store the information into a database. > > Currently I am reading from a JMS queue and using a toJdbc method on my bean > to create the sql to pass on to my database endpoint. That works fine. now > I want to pull the same parameters out of XML files. > > It seems like this should be simple, but haven't had any luck. > > my toJDBC looks like.. > > public String toJdbc(Exchange exchange){ > Map<String,Object> theHeaders = exchange.getIn().getHeaders(); > String theBody = exchange.getIn().getBody(String.class); > StringBuilder sb = .... > 8<.... > sb.append(((theHeaders.containsKey("age"))... > <build the rest of the jdbc string using theHeaders> > ... > return sb.toString(); > > (but the problem seems to be with unmarshalling the XML file) > > Things I've tried: > 1) "*file://c:/infile).beanRef("myBean","toJdbc").to("stream:out")*; > this grabs the file and loads the full XML text into the msg parameter > of my jdbc (that method loads exchange.getIn().getBody into the msg > parameter), which i suppose I could parse by hand. > > 2) > *file://c:/infile).marshal().xtream().convertBodyTo(com.me.MyBean.class).beanRef("myBean","toJdbc")* > Hoping for some magic conversion, but no luck > > 3) I wrote a method for my bean with annotated XML parameters like: > public void fromXML(@XPath("/account/option/value") String value, > .... > System.out.println("value="+value); > > But, value is always empty when i use the route: > > > *file://c:/infile).marshal().xtream().beanRef("myBean","fromXML").to("stream:out");* > > So, my question is/are: > 1) should #3 work? > > 2) Isn't there a better way? > > 3) Ideally, i'd like to parse the xml that comes in and NOT assume the XPATH > is correct. Do I need to do that myself? > > Thanks! > -J > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Reading-XML-file-into-a-bean-tp4617160p4617160.html > Sent from the Camel - Users mailing list archive at Nabble.com. > -- Claus Ibsen ----------------- FuseSource Email: cib...@fusesource.com Web: http://fusesource.com Twitter: davsclaus, fusenews Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/