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>>