Its with the other spring xmlns declarations <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
*xmlns:x="urn:iso:std:iso:20022:tech:xsd:DRAFT15auth.016.001.01"* xmlns:camel="http://camel.apache.org/schema/spring" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> On Thu, Jun 18, 2020 at 3:21 PM Mikael Andersson Wigander < mikael.grevs...@gmail.com> wrote: > Nice. > > Did you change the XML and added the namespace prefix or did you handle it > in code? > > M > > > On 18 Jun 2020, at 15:15, bob anderson <bob.anderson2...@gmail.com> > wrote: > > > > Hi , > > > > I know you are using JAVA DSL, but I have got what you want using the XML > > DSL, maybe someone can put you right from my example. > > > > The two points that are probably important are > > 1) Giving the namespace a prefix ----- > > xmlns:x="urn:iso:std:iso:20022:tech:xsd:DRAFT15auth.016.001.01" > > 2) In the second split using the prefix for both New and the Tx tags > > > > I just ran from the consol with your xml file > > > > > > <?xml version="1.0" encoding="UTF-8" standalone="no"?> > > > > <beans xmlns="http://www.springframework.org/schema/beans < > http://www.springframework.org/schema/beans>" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance < > http://www.w3.org/2001/XMLSchema-instance>" > > xmlns:x="urn:iso:std:iso:20022:tech:xsd:DRAFT15auth.016.001.01" > > xmlns:camel="http://camel.apache.org/schema/spring < > http://camel.apache.org/schema/spring>" > > xsi:schemaLocation=" > > http://www.springframework.org/schema/beans < > http://www.springframework.org/schema/beans> > > http://www.springframework.org/schema/beans/spring-beans.xsd < > http://www.springframework.org/schema/beans/spring-beans.xsd> > > http://camel.apache.org/schema/spring < > http://camel.apache.org/schema/spring> > > http://camel.apache.org/schema/spring/camel-spring.xsd < > http://camel.apache.org/schema/spring/camel-spring.xsd> > > http://www.springframework.org/schema/context < > http://www.springframework.org/schema/context> > > http://www.springframework.org/schema/context/spring-context.xsd > <http://www.springframework.org/schema/context/spring-context.xsd>"> > > > > <camelContext xmlns="http://camel.apache.org/schema/spring < > http://camel.apache.org/schema/spring>" trace="false"> > > > > <route id="Test XML splitter" streamCache="true"> > > <from > > > uri="file://src/data/?fileName=splitterxmltest.xml&noop=true&delay=500 > <file://src/data/?fileName=splitterxmltest.xml&noop=true&delay=500>"/> > > > > <split streaming="true"> > > <xtokenize>//x:Tx</xtokenize> > > <log message="Body in First tokenize split = ${body}"/> > > <!-- get some elementvalue and output to log--> > > <setHeader headerName="TxId"> > > <xpath>//x:TxId/text()</xpath> > > </setHeader> > > <log message="TxId = ${header.TxId} ***************"/> > > <!-- Do the second split --> > > <to uri="direct:secondSplit"/> > > > > </split> > > </route> > > > > > > <!-- > > > ************************************************************************************************ > > --> > > <!-- Second Split Route > > * --> > > <!-- > > > ************************************************************************************************ > > --> > > <route id="second level split"> > > <from uri="direct:secondSplit"/> > > > > <split streaming="true"> > > <xtokenize>//x:New/x:Tx</xtokenize> > > <!-- output body to the log --> > > <log message="Body in second tokenize split = ${body}"/> > > </split> > > > > > > </route> > > > > > > </camelContext> > > </beans> > > > > On Thu, Jun 18, 2020 at 2:51 PM Mikael Andersson Wigander < > > mikael.grevs...@gmail.com <mailto:mikael.grevs...@gmail.com>> wrote: > > > >> My latest tests reveal that when using local-name() I get everything > with > >> the tag <Tx> (of course). > >> > >> But I cannot see how to manipulate the xpath expression. > >> > >> final XPathBuilder xPathBuilder = > >> XPathBuilder.xpath("//*[local-name()='Tx']"); > >> > >> When trying out it in http://xpather.com/ using > >> > >> //FinInstrmRptgTxRpt/*[local-name()='Tx'] > >> > >> I get what I want but not in my code,. it returns nothing > >> > >> final XPathBuilder xPathBuilder = > >> XPathBuilder.xpath("//FinInstrmRptgTxRpt/*[local-name()='Tx']"); > >> > >> > >> > >>> On 18 Jun 2020, at 10:39, Claus Ibsen <claus.ib...@gmail.com> wrote: > >>> > >>> On Thu, Jun 18, 2020 at 10:15 AM Mikael Andersson Wigander > >>> <mikael.grevs...@gmail.com <mailto:mikael.grevs...@gmail.com> <mailto: > mikael.grevs...@gmail.com <mailto:mikael.grevs...@gmail.com>>> wrote: > >>>> > >>>> OK, interesting. > >>>> > >>>> I tested the Xpath using a online tester and there it works without > >> using any namespace. > >>>> > >>>> Is it possible using XPath without namespaces or are there any xpath > >> arguments that can be used? > >>>> > >>> > >>> No really not, java xpath requires the namespace, but there is some > >>> "trick" with local-ns() or some weird syntax I kinda think may be > >>> possible. > >>> > >>>> M > >>>> > >>>>> On 18 Jun 2020, at 09:53, Alex Dettinger <aldettin...@gmail.com > <mailto:aldettin...@gmail.com>> > >> wrote: > >>>>> > >>>>> Hi Mikael, > >>>>> > >>>>> I've noticed that the incoming xml file is involving 2 xml namespaces > >>>>> while the query looks not. > >>>>> Precising namespaces in the xpath query may help to move further, > >> something > >>>>> like: > >>>>> > >> > https://github.com/apache/camel/blob/master/core/camel-core/src/test/java/org/apache/camel/builder/xml/XPathTest.java#L241 > < > https://github.com/apache/camel/blob/master/core/camel-core/src/test/java/org/apache/camel/builder/xml/XPathTest.java#L241 > > > >>>>> > >>>>> hth, > >>>>> Alex > >>>>> > >>>>> On Thu, Jun 18, 2020 at 9:36 AM Mikael Andersson Wigander < > >>>>> mikael.grevs...@gmail.com <mailto:mikael.grevs...@gmail.com>> wrote: > >>>>> > >>>>>> Hi > >>>>>> > >>>>>> My problem is that I can’t extract some XML using xpath in Camel > 3.3.0 > >>>>>> > >>>>>> My incoming XML is complicated where my target tag <Tx></Tx> also > has > >> a > >>>>>> tag further down the tree as <Tx></Tx>. > >>>>>> > >>>>>> I have created a demo project on Github for share if someone could > >> help > >>>>>> me. https://github.com/hakuseki/xpath < > https://github.com/hakuseki/xpath> > >>>>>> > >>>>>> I have tested with a more “friendly” XML and both tests manage to > >> retrieve > >>>>>> the XML segment I want. > >>>>>> > >>>>>> This type of XML we get from client is based on a EU/ESMA standard. > >>>>>> > >>>>>> Pls advice > >>>>>> > >>>>>> Thx > >>>>>> > >>>>>> /M > >>>>>> > >>>>>> > >>>> > >>> > >>> > >>> -- > >>> Claus Ibsen > >>> ----------------- > >>> http://davsclaus.com <http://davsclaus.com/> <http://davsclaus.com/ < > http://davsclaus.com/>> @davsclaus > >>> Camel in Action 2: https://www.manning.com/ibsen2 < > https://www.manning.com/ibsen2> < > >> https://www.manning.com/ibsen2 <https://www.manning.com/ibsen2>> > >> > > > > > > -- > > Bob Anderson > > +27 (0) 82 389 0335 > > [image: View my profile on LinkedIn] > > <http://ng.linkedin.com/pub/bob-anderson/2/25/9b5 < > http://ng.linkedin.com/pub/bob-anderson/2/25/9b5>> > > -- Bob Anderson +27 (0) 82 389 0335 [image: View my profile on LinkedIn] <http://ng.linkedin.com/pub/bob-anderson/2/25/9b5>