You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by klua <pr...@citi.com> on 2011/08/09 19:57:02 UTC

Camel Splitter with Xpath recognizes namespace, but returns null

Hi,

I am using Camel's Spring DSL, to write a simple application, that takes
xml, and splits it based on the xpath. It should be pretty straightforward;
there is only one extra step that I have, which is declaring a namespace.
The problem is that although xpath recognizes the element that I'm looking
for, it returns a null for the value.
Here's a sample xml, to give you a general idea of what I'm doing. (Notice
that it has an associated namespace)

<foo:foo>

   <foo:bar>
      <foo:id idScheme="12345">1</foo:id>
   </foo:bar>

   <foo:bar>
      <foo:id idScheme="45678">2</foo:id>
   </foo:bar>

</foo:foo>

Here's my route:
<route>
    <from uri="direct:start">
    <split>
        <xpath>/foo:foo/foo:bar/</xpath>
        <to uri="mock:result"/>
    </split>
</route>

As I mentioned before, I declare the namespace, in the bean context of
spring. 
<beans...............................
 xmlns:foo="some URL"
 xmlns:bar="some URL"
>
And I get the expected number of results from xpath, but null values. Any
idea where I'm going wrong? Any help would be greatly appreciated! Thanks!



--
View this message in context: http://camel.465427.n5.nabble.com/Camel-Splitter-with-Xpath-recognizes-namespace-but-returns-null-tp4682976p4682976.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Camel Splitter with Xpath recognizes namespace, but returns null

Posted by Christian Müller <ch...@gmail.com>.
Did you had already a look on [1]? May one of the other possibilities works
for you:
- declaring the namespace on the camel context element (instead of the beans
element)
- specifying the xPath result type

[1] http://camel.apache.org/xpath.html

Best,
Christian

Re: Camel Splitter with Xpath recognizes namespace, but returns null

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi,

could you try with a different xpath:

//bar

AFAIR, xpath can ignore the namespace.

Regards
JB

On 08/09/2011 07:57 PM, klua wrote:
> Hi,
>
> I am using Camel's Spring DSL, to write a simple application, that takes
> xml, and splits it based on the xpath. It should be pretty straightforward;
> there is only one extra step that I have, which is declaring a namespace.
> The problem is that although xpath recognizes the element that I'm looking
> for, it returns a null for the value.
> Here's a sample xml, to give you a general idea of what I'm doing. (Notice
> that it has an associated namespace)
>
> <foo:foo>
>
>     <foo:bar>
>        <foo:id idScheme="12345">1</foo:id>
>     </foo:bar>
>
>     <foo:bar>
>        <foo:id idScheme="45678">2</foo:id>
>     </foo:bar>
>
> </foo:foo>
>
> Here's my route:
> <route>
>      <from uri="direct:start">
>      <split>
>          <xpath>/foo:foo/foo:bar/</xpath>
>          <to uri="mock:result"/>
>      </split>
> </route>
>
> As I mentioned before, I declare the namespace, in the bean context of
> spring.
> <beans...............................
>   xmlns:foo="some URL"
>   xmlns:bar="some URL"
>>
> And I get the expected number of results from xpath, but null values. Any
> idea where I'm going wrong? Any help would be greatly appreciated! Thanks!
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Camel-Splitter-with-Xpath-recognizes-namespace-but-returns-null-tp4682976p4682976.html
> Sent from the Camel - Users mailing list archive at Nabble.com.

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com